Python新手,从哪个项目开始学习Python比较好?
写 python 代码也有几年了,但都只局限于使用上面,并没有深入研究 python,现在想试着研究 python 及相关模块的源代码,但不知道从何处下手,感觉都好难,求大神指点
Python新手,从哪个项目开始学习Python比较好?
看 Python 自己的那些 Python 就 OK
从写一个简单的命令行待办事项管理器开始。这项目能覆盖Python基础的核心:变量、循环、条件判断、函数、文件读写和列表操作。你不需要任何外部库,用纯Python就能搞定。
下面是一个可以直接运行的示例,它实现了添加、查看、删除和保存任务的基本功能:
import json
import os
TODO_FILE = 'todo_list.json'
def load_tasks():
"""从文件加载任务列表"""
if os.path.exists(TODO_FILE):
with open(TODO_FILE, 'r') as f:
return json.load(f)
return []
def save_tasks(tasks):
"""保存任务列表到文件"""
with open(TODO_FILE, 'w') as f:
json.dump(tasks, f)
def show_tasks(tasks):
"""显示所有任务"""
if not tasks:
print("当前没有任务。")
return
print("\n当前任务列表:")
for i, task in enumerate(tasks, 1):
status = "✓" if task['done'] else " "
print(f"{i}. [{status}] {task['title']}")
def add_task(tasks):
"""添加新任务"""
title = input("请输入任务内容:").strip()
if title:
tasks.append({'title': title, 'done': False})
save_tasks(tasks)
print(f"已添加任务:{title}")
else:
print("任务内容不能为空!")
def complete_task(tasks):
"""标记任务为完成"""
show_tasks(tasks)
if tasks:
try:
index = int(input("请输入要完成的任务编号:")) - 1
if 0 <= index < len(tasks):
tasks[index]['done'] = True
save_tasks(tasks)
print(f"已标记任务为完成:{tasks[index]['title']}")
else:
print("无效的任务编号!")
except ValueError:
print("请输入有效的数字!")
def delete_task(tasks):
"""删除任务"""
show_tasks(tasks)
if tasks:
try:
index = int(input("请输入要删除的任务编号:")) - 1
if 0 <= index < len(tasks):
removed = tasks.pop(index)
save_tasks(tasks)
print(f"已删除任务:{removed['title']}")
else:
print("无效的任务编号!")
except ValueError:
print("请输入有效的数字!")
def main():
"""主程序循环"""
tasks = load_tasks()
while True:
print("\n=== 命令行待办事项管理器 ===")
print("1. 查看任务")
print("2. 添加任务")
print("3. 标记任务完成")
print("4. 删除任务")
print("5. 退出")
choice = input("请选择操作 (1-5): ").strip()
if choice == '1':
show_tasks(tasks)
elif choice == '2':
add_task(tasks)
elif choice == '3':
complete_task(tasks)
elif choice == '4':
delete_task(tasks)
elif choice == '5':
print("再见!")
break
else:
print("无效的选择,请重新输入!")
if __name__ == "__main__":
main()
这个项目的好处是:你能立刻看到结果,每完成一个功能都有正反馈。写完基础版本后,可以尝试添加新功能,比如按日期排序、任务分类或设置优先级,这样能自然地学习更多Python特性。
一句话建议:从能快速获得成就感的小工具开始,保持学习动力。
是要看 CPython 的源码吗?
这种问题在知乎上都一大片了,搜索一下就有了
你是想要深入研究 Python 写代码的 Best Practice,还是 Python 解释器?
星星多的项目 过一遍
我在看 CPython
源码
先找个简单的 python 开源模块研究下
好的,我去搜搜看
厉害,分享下心得呢
星星多的代码看着好吃力
python 的源码么?
准备写个系列,刚写了两篇 = =
你看源码是从哪部分开始呢
flask,gunicore,tornado,httpie,requests 读过这几个,写的都非常好
666,我就看了下 tornado,看不进去,所以想找个简单,你能分享下如何来看这些项目的源代码么
《 python cookboook 》《 Python 源码分析》,再挑几个标准库看看
一般都是从对象模型开始看吧,其他的大都会涉及到这一部分。
多谢分享
这是你写的?
没错,对象模型,然后 解释器 内存分配, 你可以看看 Python 源码剖析,挺不错的。
自己写个 web server 试试
贴下自己看 gunicore 的源码的阅读文章 https://github.com/Junnplus/blog/issues/9
也有几篇开始看 cpython 源码的文章


