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

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

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

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


1. wtfpython

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


2. python-cheatsheet

非常全面实用 Python 备忘录。特别适合作为线上快查手册用,比如Python写正则的规范、进度条的库名、pandas处理数据的基本用法、一些常用项目的方法参数等。

有了这个项目,上述问题都可以快速找到即时使用的代码片段。示例代码:

# $ 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

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

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


4. diagrams

这个项目可以用简单的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


5. taichi

这是一个高性能的图形编程框架。它可以将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()


6. dash

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


7. EasyOCR

即插即用的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

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


9. python-mini-projects

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


10. pyxel

基于 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)


11. PyBoy

用 Python 写的 GameBoy 模拟器。不仅可以用来怀念童年,还可以用这个库写插件和外挂,之前虐你几千遍的游戏,现在用 Python 让你体验造物主的快感!

示例代码:

from pyboy import PyBoy
pyboy = PyBoy('ROMs/gamerom.gb')
while not pyboy.tick():
    pass


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

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

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

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

结束语

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

展开阅读全文

页面更新:2024-03-08

标签:用项   有趣   简单   项目   示例   函数   片段   模块   热门   代码   收藏   数据   资源

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top