​编程教室的文章是用什么库完成的?

简介: Python 的一大特色是其丰富的模块,基本上只要你能想到的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具/框架来辅助实现。但这对于新手来说也是一个问题:

Python 的一大特色是其丰富的模块,基本上只要你能想到的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具/框架来辅助实现。但这对于新手来说也是一个问题:这么多库,我要从哪里学起?怎么才能记住这么多库的用法?

对此我的建议:


  1. 不要把学习库作为目标。正确的学习逻辑是,去发掘可编程解决的需求,以实现功能为目标,在开发过程中去搜索去学习相关的库。否则你会陷在茫茫模块之中失去方向。
  2. 不用去死记库的用法,你也不可能记下来。你需要了解的是查找和阅读文档的方法,以及常见的开发模式。所谓开发经验,并不是你记住的内容,而是你掌握的方法。


我们编程教室在过去发表过数十个开发案例,这些案例主要用到哪些库呢?今天就来统计一下,顺便给大家整理及推荐常用的一些库。


之前有下载过文章相关代码的同学应该知道我们这个 snippet 的代码仓库,我们大部分的案例项目都在其中。下面就以这个库中的代码为参考进行统计。



统计代码:


import os
from collections import Counter
modules = set()
all_modules = {}
for root, dirs, files in os.walk("..", topdown=False):
    for name in files:
        if name.endswith('.py'):
            with open(root + os.path.sep + name) as f:
                for line in f:
                    line = line.lstrip()
                    if line.startswith('from') or line.startswith('import'):
                        module = line.split()[1]
                        module = module.split('.')[0]                        if module:
                            modules.add(module)
    if root.count(os.path.sep) <= 1:
        for m in modules:
            all_modules[m] = all_modules.get(m, 0) + 1
        modules = set()
print(Counter(all_modules).most_common())


代码很简单,4个步骤:


  1. 遍历文件夹,找出所有 .py 结尾的代码文件
  2. 对代码文件中的每一行,判断是否以 fromimport 开头,是的话,就把它后面的模块名记下来
  3. 为了避免有的项目中重复导入一个模块影响数据,对于同一个项目子目录下,我们用 set 记录保证不重复,然后再添加到总的记录字典中
  4. 使用 Counter 对字典进行排序,找到使用次数最多的模块


最后的结果以及模块说明(名称后是使用次数):


random - 10,随机数

requests - 8,网络请求

numpy - 8,高性能计算

matplotlib - 7,图表绘制

time - 7,时间

cv2 - 6,计算机视觉

math - 6,数学

os - 6,系统

collections - 5,集合

pyecharts - 4,图表绘制

urllib - 4,网络请求

datetime - 4,日期与时间

bs4 - 4,HTML文本解析

tkinter - 3,图形界面GUI

sys - 3,系统

jieba - 3,中文分词

pandas - 2,数据统计分析

scipy - 2,科学计算

re - 2,正则表达式

argparse - 2,命令行参数

pygame - 2,游戏

json - 2,JSON格式处理

email - 2,邮件

smtplib - 2,邮件

urllib2 - 2,网络请求

pyaudio - 2,声音

PIL - 2,图像处理


除了 random、time、math 这类 python 自带的基础库外,从以上统计可以间接看出,我们的案例比较多的会涉及网络数据的抓取(requests、urllib、bs4)、数据分析及可视化(numpy、matplotlib、pyecharts、pandas)、计算机视觉及图像处理(cv2、PIL)等方向。


对于已经学完 python 基本语法,想要进一步深入学习的同学,可根据方向重点关注以下库:


Web 开发:django / flask

网络爬虫:requests、bs4

数据分析:numpy、pandas、matplotlib

视觉及图像处理:cv2、PIL(pillow)

图形界面开发:tkinter / PyQT

游戏开发:pygame / cocos-python


不用贪多,找个自己感兴趣的方向,选一些可行的案例进行开发,把基本的几个库用熟了,这个过程你得到成长就会很多。写代码的目的是解决问题,调用库只是实现的手段,千万不要本末倒置了。


统计的代码也上传了仓库,



其他内容回复左侧关键词获取:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例


如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

Python转行 | 爬抖音 | 如何debug | 查天气 | 我用Python | 知乎 | 单词表 | 新手建议 | 如何提问 | 一图学Python | 智能防挡弹幕 | 红包提醒 | 流浪地球

相关文章
|
2天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
337 90
|
10天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。
|
人工智能 前端开发 API
前端接入通义千问(Qwen)API:5 分钟实现你的 AI 问答助手
本文介绍如何在5分钟内通过前端接入通义千问(Qwen)API,快速打造一个AI问答助手。涵盖API配置、界面设计、流式响应、历史管理、错误重试等核心功能,并提供安全与性能优化建议,助你轻松集成智能对话能力到前端应用中。
776 154
|
16天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
995 152
|
3天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
2天前
|
数据采集 人工智能 搜索推荐
别再“调教”ChatGPT了!用Qwen2.5打造24小时在线数字分身
在AI时代,专属“数字分身”正从科幻走向现实。依托Qwen2.5-14B大模型、LoRA微调技术及LLaMA-Factory Online平台,仅需四步即可打造会说话、懂风格、能办事的个性化AI助手,让每个人拥有自己的“贾维斯”。
213 152