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

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

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

统计的代码也上传了仓库,获取请在公众号(Crossin的编程教室)回复关键字 模块


(0)

相关推荐

  • 十大最佳Python书籍[2021年更新]

    Python编程–计算机科学入门(第3版)随着软件热潮中就业机会的增加,对python开发人员的需求很大.可以通读概念并实践逻辑方法解决方案,从而掌握Python编程技能. Python编码书籍使您可 ...

  • 推荐两个实用Python库,文末送Python书籍

    关键时刻,第一时间送达! Python在五月份的热门最新排行,竟然超过了Java,厉害了,我的Python! 这周刚好是公众号的读者送书福利周,这边刚好有3本关于Python的书籍,打算送给大家,不过 ...

  • 如何从编程教室里挖掘“宝藏”

    最近,我比较多的精力放在课程更新和学习小组的筹备上,文章的更新频率可能会有所降低(本来也就一周两三更,你还能低到哪里去!).不过等这阵子的更新完成之后,相信不会让大家失望的(至少不会让真心想学编程的朋 ...

  • 我从编程教室毕业

    这篇文章在我的草稿箱里躺了有一年多,今天总算是发出来了.本文的作者是之前编程教室的实训生之一,原本在汽车制造车间里工作,后来成功转行为一名程序员,从事车载语音识别相关软件的开发.这是他个人转行过程中的 ...

  • 我用 Python 算了下:编程教室的用户数哪天能到100万

    这是一篇正经的数据分析案例. 去年12月初,在经过四年多的积累后,编程教室微信公众号的关注人数突破10万人.(可回顾 最开始我也没有想过会有这么一天-) 10万人只是另一个开始,让我感到责任更大了.如 ...

  • 「实战编程」CNC数控加工切削参数库

    「实战编程」CNC数控加工切削参数库

  • 编程学习之一篇文章让你掌握企业画像

    2019PHP高薪工程师学习路线图....>>> 前言 前一阵子发了一个问题:对于 to B 的公司,要不要做企业画像? 如何做企业画像? 结果一石激起千层浪,大家讨论非常热烈.原来 ...

  • 环球酒库|喜欢白酒的你一定不能错过这篇文章!

    一壶好酒,道法自然 一脉传承,酒体敦厚 酱香沉香协调细腻醇冽甘饴 入口柔顺,回味悠长,空杯留香 白酒在中国人的生活中是一个很重要的存在,中国人逢大事,必喝白酒.比如遇到结婚.生子等大事时,都有酒来庆祝 ...

  • 收藏,7个学习Python编程的最佳开源库!

    来源丨网络 1.learn-python3 这个存储库一共有19本Jupyter笔记本.它涵盖了字符串和条件之类的基础知识,然后讨论了面向对象编程,以及如何处理异常和一些Python标准库的特性等.每 ...

  • 三菱PLC基本编程练习(9):圆盘刀具库自动换刀程序

    上回说到圆转盘的捷径控制,接下来讲一讲转盘刀具库捷径换刀控制.圆盘刀具库自动换刀程序 案例要求: 一个圆转盘在其周围分布有8个接近开关,对应有7个刀具和1个0位换刀位置,转盘上0位位置边沿有一个感应铁 ...

  • 这个库堪称Python编程的瑞士军刀!

    菜鸟学Python 1周前 以下文章来源于Python大数据分析 ,作者费弗里 Python大数据分析分享python编程.可视化设计.大数据分析.机器学习等技术以及数据分析案例,包括但不限于pand ...