扫一扫
关注 HG 公众号
发现更多开源乐趣

Python 项目

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

Computer-Networking-A-Top-Down-Approach-NOTES

第 54 期 Star 2.4k Watch 80 Fork 787 中文
《计算机网络-自顶向下方法》编程作业。包含问题和 Python 代码解答,Wireshark 实验部分为官方文档的翻译

learn-python3

第 54 期 Star 2.5k Watch 152 Fork 627
一份 Python3 的教程,请查收。该教程采用 Jupyter notebooks 形式,便于运行和阅读。并且还包含了练习题,对新手友好。缺点的话就是英文的教程,但是我都能看懂你肯定也可以

readthedocs.org

第 54 期 Star 6.0k Watch 228 Fork 3.2k
知名文档社区网站(readthedocs.org)的开源源码。该网站上托管了:Scrapy、requests、bootstrap-datepicker 等知名库的文档,我看了下项目是基于 Django 开发的,文件有些多看起来需要点耐心

taichi

第 54 期 Star 12.3k Watch 328 Fork 1.3k 中文
一个高性能图形学编程框架。它可以将你编写的 Python 代码转换成高效的汇编代码,在多 CPU 和 GPU 上运行,相当于是在用 Python 的语法写着色器。Taichi 解决了图形学配环境难,代码移植性差等问题,只需 pip install taichi 即可安装,编写的程序在 Windows、Linux、OSX 上均可运行,降低了新手学习图形学的门槛。示例代码:

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()

taichi

real-live

第 54 期 Star 390 Watch 19 Fork 47 中文
一个网络直播聚合平台,能够观看视频直播、高清电视和收听广播电台等。目前支持 30+ 个视频直播、50+ 个高清电视频道和 70+ 个广播电台,比较全面的 Web 项目,用到的技术栈:

  • 前端/客户端:Qt、Vue、Flutter 等
  • 后端:MySQL、Redis、Kafka/RabbitMQ、Elasticsearch 等

real-live

butterfly

第 53 期 Star 45 Watch 2 Fork 7 中文
又一个轻量级的 Python Web 框架。Web 框架太多了,该项目主旨是通过开发一个轻量级、可靠可用的 Web 框架,来更加深入理解 Web 开发过程中经常忽略(框架做的)但又十分重要的知识点。那句话咋说来的:我不做一遍,我就不算懂!架构图如下:
butterfly

altair

第 53 期 Star 6.0k Watch 152 Fork 555
强大的数据可视化 Python 库。支持多种数据展示方式、接口简单、效果炫酷,示例代码和效果如下:

import altair as alt
from vega_datasets import data

source = data.cars()
brush = alt.selection(type='interval')
points = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.condition(brush, 'Origin', alt.value('lightgray'))
).add_selection(
    brush
)

bars = alt.Chart(source).mark_bar().encode(
    y='Origin',
    color='Origin',
    x='count(Origin)'
).transform_filter(
    brush
)

points & bars

altair

QuickCut

第 53 期 Star 694 Watch 26 Fork 75 中文
一款轻量、好用的开源视频处理工具。它是基于 PyQt5 开发的桌面工具,用于满足非专业用户的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑等
QuickCut

handcalcs

第 53 期 Star 2.6k Watch 51 Fork 167
通过简单的 Python 代码,生成复杂公式的工具。还记得写论文推算算法的时候,被一行行公式支配的恐惧吗?该库可以将 Python 写的公式,展示为 LaTeX 格式,效果如下:
handcalcs

python-dotenv

第 52 期 Star 3.4k Watch 30 Fork 206
帮你更好的管理 Python 项目中敏感配置信息的开源三方库。在项目中会有一些数据库、账户、KEY 等敏感信息,这些信息最好不要写在源代码中。为了降低泄漏风险,一般会通过环境变量来设置,这个库可以很方便帮你在 Python 项目中管理这些信息。示例代码:

# 安装:pip install -U python-dotenv
# 目录结构:
.
├── .env
└── settings.py
# 示例代码
# settings.py
import os
from dotenv import load_dotenv
load_dotenv()

SECRET_KEY = os.getenv("EMAIL")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")