天天看點

收藏!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熱門項目資源