天天看点

收藏!GitHub上11个简单、有趣的Python热门项目资源

作者:老K玩代码

Python作为最有名的胶水语言,已经成为当下最热门的编程语言之一了,甚至一度打破了普通人和程序员之间的壁垒。

毋庸置疑,Python可以有很多有趣的代码实现,这里就整理介绍几个GitHub上简单、有趣且热门的代码项目。

话不多说,开始分享!【如果有你喜欢的模块或项目,记得给老K点赞哦!】

收藏!GitHub上11个简单、有趣的Python热门项目资源

1. wtfpython

  • url: https://github.com/satwikkansal/wtfpython
  • star: 32000
  • fork: 2500
  • watch: 763

有趣、惊人(反直觉)、鲜为人知的 Python 代码集合片段,并讨论这些代码现象背后的原理。

收藏!GitHub上11个简单、有趣的Python热门项目资源

2. python-cheatsheet

  • url: https://github.com/gto76/python-cheatsheet
  • star: 31000
  • fork: 5600
  • watch: 972

全面且实用的 Python 备忘录。

这个东西特别适合我,年纪大了容易忘事【哭】。比如:忘记怎么用Python写正则、要搞个进度条忘记库的名字和基本用法、用pandas处理数据忘记方法需要的参数等等。正当我觉得自己需要“回炉重学”的时候发现了这个项目。有了它,上面的问题都可以找到拿来即用的代码片段。我又是那个快乐的Pythoneer了,示例代码:

# $ pip3 install tqdm
>>> from tqdm import tqdm
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
...     sleep(1)
Processing: 100%|████████████████████| 3/3 [00:03<00:00,  1.00s/it]           

3. 500lines

  • url: https://github.com/aosabook/500lines
  • star: 28000
  • fork: 5900
  • watch: 1800

使用少于500行的Python代码可以写什么?这个项目会给到你很多启发。每个项目都是业内大神开发的哦!

项目本身是英语版,中文翻译版还在进行中,有兴趣的小伙伴可以加入项目。

4. diagrams

  • url: https://github.com/mingrammer/diagrams
  • star: 26000
  • fork: 1600
  • watch: 352

这个项目可以用简单的Python代码图解系统架构。

程序员在制定技术方案时,清晰的系统架构图至关重要。这个项目将绘制架构图所需的图标包装成相应的类别,可以通过Python代码实现调用,便捷易用。

文档中还有丰富的例子,可以在几分钟内掌握和实现用Python快速绘制精美清晰的架构图,节省拖动和调整连接的步骤,还可以重构代码,以应对不断迭代升级的架构。

with Diagram("Advanced Web Service with On-Premise", show=False):
    ingress = Nginx("ingress")

    metrics = Prometheus("metric")
    metrics << Grafana("monitoring")

    with Cluster("Service Cluster"):
        grpcsvc = [
            Server("grpc1"),
            Server("grpc2"),
            Server("grpc3")]

    with Cluster("Sessions HA"):
        primary = Redis("session")
        primary - Redis("replica") << metrics
        grpcsvc >> primary

    with Cluster("Database HA"):
        primary = PostgreSQL("users")
        primary - PostgreSQL("replica") << metrics
        grpcsvc >> primary

    aggregator = Fluentd("logging")
    aggregator >> Kafka("stream") >> Spark("analytics")

    ingress >> grpcsvc >> aggregator           
收藏!GitHub上11个简单、有趣的Python热门项目资源

5. taichi

  • url: https://github.com/taichi-dev/taichi
  • star: 21000
  • fork: 2100
  • watch: 399

这是一个高性能的图形编程框架。它可以将Python代码转换成高效的汇编代码,在多 CPU 和 GPU 上操作,相当于使用Python写修饰器。

Taichi解决了图形学配置环境难、代码移植性差等问题,通过pip install taichi就可以安装。示例代码:

import taichi as ti

ti.init(arch=ti.gpu)  # 指定编译后的函数在 GPU 上执行

n = 320
pixels = ti.field(dtype=float, shape=(n * 2, n))  # 提前声明数组存储类型,大小


@ti.func  # 该函数将是被调用的过程函数
def complex_sqr(z):
    return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])


@ti.kernel  # 该函数将被 Taichi 编译
def paint(t: float):
    for i, j in pixels:  # 最外层循环会自动并行化
        c = ti.Vector([-0.8, ti.cos(t) * 0.2])
        z = ti.Vector([i / n - 1, j / n - 0.5]) * 2
        iterations = 0
        while z.norm() < 20 and iterations < 50:  # 其他语法和原生 Python 基本一致
            z = complex_sqr(z) + c
            iterations += 1
        pixels[i, j] = 1 - iterations * 0.02


gui = ti.GUI("Julia Set", res=(n * 2, n))

for i in range(1000000):
    paint(i * 0.03)
    gui.set_image(pixels)
    gui.show()           
收藏!GitHub上11个简单、有趣的Python热门项目资源

6. dash

  • url: https://github.com/plotly/dash
  • star: 18000
  • fork: 1800
  • watch: 407

一个只有几百行的Python代码项目,可以很容易地实现数据分析的可视化,也是当前Python社区数据中主要的可视化工具之一。具有使用简单、扩展方便、开发团队活跃等特点。

收藏!GitHub上11个简单、有趣的Python热门项目资源

7. EasyOCR

  • url: https://github.com/JaidedAI/EasyOCR
  • star: 16000
  • fork: 2300
  • watch: 281

即插即用的OCR工具,支持多种自然语言的即用型Python OCR。包括中文、日文、韩文等。示例代码:

import easyocr
reader = easyocr.Reader(['ch_sim','en']) # need to run only once to load model into memory
result = reader.readtext('chinese.jpg')
# 输出
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]           

8. awesome-python-applications

  • url: https://github.com/mahmoud/awesome-python-applications
  • star: 14000
  • fork: 2500
  • watch: 762

介绍Python有趣而神奇的开源项目。目前涵盖多个领域,包括407个不同项目。项目为英文,需要具备一定的英语基础。

9. python-mini-projects

  • url: https://github.com/Python-World/python-mini-projects
  • star: 12000
  • fork: 3600
  • watch: 245

一个简单的Python迷你脚本集合。虽然代码简单,但并不缺乏实用性,如添加水印、批量下载、发送电子邮件、定期截屏等。有趣又易上手。

10. pyxel

  • url: https://github.com/kitao/pyxel
  • star: 11000
  • fork: 687
  • watch: 232

基于 Python 实现的复古游戏引擎。示例代码:

# 代码中导入 Pyxel 模块后
import pyxel
# 首先使用 init 函数指定窗口大小
pyxel.init(160, 120)

def update():
    if pyxel.btnp(pyxel.KEY_Q):
        pyxel.quit()

def draw():
    pyxel.cls(0)
    pyxel.rect(10, 10, 20, 20, 11)
# 最后然后使用 run 函数启动 Pyxel 应用程序
pyxel.run(update, draw)           
收藏!GitHub上11个简单、有趣的Python热门项目资源

11. PyBoy

  • url: https://github.com/Baekalfen/PyBoy
  • star: 3700
  • fork: 373
  • watch: 71

Python写的GameBoy 模拟器。不仅可以用来怀念童年,还能用这个库写“外挂”,之前虐你千百遍的游戏。现在用Python找回场子,放学别走,学校门口见!

示例代码:

from pyboy import PyBoy
pyboy = PyBoy('ROMs/gamerom.gb')
while not pyboy.tick():
    pass           
收藏!GitHub上11个简单、有趣的Python热门项目资源

这么多有趣的项目,难道不值得你赞一个嘛~

我之前还分享过Github上其他有趣的项目,包含各种编程语言,有需要的同学可以直接点击下方链接获取:

推荐GitHub上8个有意思的项目 包含Python JS等不同语言 建议收藏

GitHub上11个好玩又有挑战的前端项目 Star过万 值得收藏

结束语

我是@老K玩代码,专注于编程开发的经验总结和项目分享,对编程有兴趣、正在学习编程的同学可以关注我。

收藏!GitHub上11个简单、有趣的Python热门项目资源