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

news/2024/7/5 2:21:03

入门教程、案例源码、学习资料、读者群

请访问: python666.cn

大家好,欢迎来到 Crossin的编程教室 !

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

对此我的建议:

  1. 不要把学习库作为目标。正确的学习逻辑是,去发掘可编程解决的需求,以实现功能为目标,在开发过程中去搜索去学习相关的库。否则你会陷在茫茫模块之中失去方向。

  2. 不用去死记库的用法,你也不可能记下来。你需要了解的是查找和阅读文档的方法,以及常见的开发模式。所谓开发经验,并不是你记住的内容,而是你掌握的方法。

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

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

c3fd9a8aaa71dee2d05e1cf3f7f918c4.jpeg

统计代码:

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)
    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 对字典进行排序,找到使用次数最多的模块

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

matplotlib - 18,图表绘制

random - 18,随机数

requests - 16,网络请求

time - 16,时间

numpy - 14,高性能计算

os - 9,系统

pyecharts - 8,图表绘制

pandas - 8,数据统计分析

cv2 - 7,计算机视觉

bs4 - 7,HTML文本解析

urllib - 6,网络请求

math - 6,数学

datetime - 6,日期与时间

re - 6,正则表达式

turtle - 6,海龟作图

collections - 5,集合

pylab - 4,图表绘制

IPython - 4,交互式Python shell

json - 4,JSON格式处理

jieba - 4,中文分词

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

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

Web 开发:django / flask
网络爬虫:requests、bs4
数据分析:numpy、pandas、matplotlib
视觉及图像处理:cv2、PIL(pillow)
图形界面开发:tkinter / PyQT
游戏开发:pygame / cocos-python

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

感谢转发点赞的各位~


_往期文章推荐_

大家都是拷贝,凭什么你这么秀?


如需了解付费精品课程教学答疑服务

请在Crossin的编程教室内回复: 666

ec79e79f0fb5026449f31d4259bac12c.jpeg


http://lihuaxi.xjx100.cn/news/1151742.html

相关文章

人工智能的界面革命,消费者与企业互动的方式即将发生变化。

本文来源于 digitalnative.substack.com/p/ais-interface-revolution 描述了一种社会现象: 随着真实友谊的减少和虚拟友谊的增加,越来越多的人开始将AI聊天机器人视为自己的朋友,甚至建立了深厚的情感纽带。这可能与当前人们越来越孤独的现实…

Hive on Spark调优(大数据技术8)

第8章 任务并行度优化 8.1 优化说明 对于一个分布式的计算任务而言,设置一个合适的并行度十分重要。在Hive中,无论其计算引擎是什么,所有的计算任务都可分为Map阶段和Reduce阶段。所以并行度的调整,也可从上述两个方面进行调整。 …

聚观早报|ChatGPT 推出官方 iOS App;大疆称将接收OPPO哲库工程师

今日要闻:ChatGPT 推出官方 iOS App;大疆称将接收OPPO哲库工程师;菜鸟、盒马启动上市计划;苹果公司限制员工使用ChatGPT;张勇:阿里云将分拆上市 ChatGPT 推出官方 iOS App 北京时间 5 月 19 日&#xff0c…

Fragment 要你何用?2.0版本

前言 在之前的文章里有分析过Activity、Fragment、View之间的关联,也简单分析了Fragment的原理。 本篇将对Fragment被高频使用的场景以及一些坑点作分析,通过本篇文章,你将了解到: 老生常谈:为什么需要Fragment?Frag…

KingbaseES V8R3 备份恢复系列之 -- sys_rman备份过程分析

​ 案例说明: 本案例通过对KingbaseES sys_rman物理备份过程的详细描述,有助于在执行sys_rman过程中发生故障的分析。适用版本: KingbaseES V8R3 一、sys_rman执行过程简介 1. 调用select sys_start_backup()开始备份,sys_start_b…

SOFA Weekly|SOFA 大事记、Layotto 社区会议回顾与预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答,同步开源进展 欢迎留言互动~ SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件&am…

java selenium关闭https 证书认证

直接上代码: DesiredCapabilities capabilities DesiredCapabilities.chrome(); ChromeOptions options new ChromeOptions(); options.addArguments("test-type"); options.addArguments("start-maximized"); options.addArguments("u…

ARM处理器概论与组织

目录 1.ARM产品系列 2.体系结构 3.ARM指令集 定义: ARM的指令集: 4.编译原理 5.ARM存储模型 6.ARM的8种工作方式 ARM(Advanced RISC Machines)有三种含义 一个公司的名称、一类处理器的通称、一种技术,我们在这…