Python 的练手项目有哪些值得推荐?

我不是伸手党,在网上搜了很多类似的问答,没有很满意的答案。我基本上把python的基本语法看完了,还花了一个月左右的时间 Yixiaohan/show…
关注者
64,514
被浏览
7,092,276

446 个回答

更新:兄弟们如此给力,好东西就是用来分享的。 500 line or less只是某个系列丛书中第四本,其他三本链接:

aosabook.org/en/index.h

可以在线看哦

前两本每章介绍出名开源软件的架构,你说的上名字的开源基本上都能找到,短小精悍的介绍框架

第三本介绍开源软件中实际遇到的一些performance的问题以及解决方案,同样浓缩啊!! 每章的作者大多就是此开软软件的开发者啊!!!

不用多说,点开你就知道啊

不想看英文的怒点

ituring.com.cn/article/

前两卷的中文版,不知道翻译的怎么样

----------------------------------------割了你--------------------------------------------------------------

和楼主一样在学习python, 最近找到一本python神书 500 line or less. 有兄弟提到了git的源码,这里不只是源码,而是这么一本书,目前还没出版,但是在网上有已经看到了 review版本。

强烈推荐!!!

强烈推荐!!!

强力推荐!!!

这本书共16个章节,每章均是由该领域的大牛完成,用不到500行的代码实现一个特(装)定(逼)功能。

本书链接

aosabook.org/blog/

目录页:

aosabook.org/blog/

以下是章节目录,每一章都让你热血澎湃,看完介绍你就向往下读。

1. A Template Engine (

aosabook.org/en/500L/a-

MVC模型中的view层如何解析html中的静态变量和简单的语句,如下:

<p>Welcome, {name}!</p>
<p>Products:</p>
<ul>
{products}
</ul>

web中的view层不只是html代码,还有支持其他的代码。比如 {products}是一个变量。 同时view层还支持{if} , {for}, {foreach}等等。django,velocity等是如何解析他们的?

大牛用不到500行代码告诉你,是如何实现的? (不是替换,替换需要每次请求都需要解析)

2. Web Spreadsheet (

aosabook.org/en/500L/we

web的电子表格如何实现的? 好像比较简单,但是介绍了 web storage 和 web worker,还是很值得一看的

3. A Web Crawler

aosabook.org/en/500L/a-

不多说,几百行代码实现高效的网络爬虫, 高效!

4. Static Analysis

aosabook.org/en/500L/st

成熟的IDE都有代码检查和代码提示,怎么做的? 看这章

5. Clustering by Consensus

aosabook.org/en/500L/cl

分布式系统 paxos原理与实现。不知道paxos说明你没接触过分布式体统,接触过分布式还不懂,说明你只会用分布式系统

6. A Simple Object Modle

aosabook.org/en/500L/a-

Python是面向对象语言,对象,继承,多态,怎么用代码实现的,不到500行代码,实际不到400 行, 666.。。

7. An Archaeology-Inspired Database

aosabook.org/en/500L/an

如何用python实现一个数据库,支持 query,index, transaction, 2,3百行代码和对每个函数的讲解。看完你就知道知道数据库原理,太值了

8. Dog Bed Database

aosabook.org/en/500L/db

类似上一章,不过这次实现的是key-value的非关系型数据库,详细的讲解和2,3百行代码

9. A 3D Modeller

aosabook.org/en/500L/a-

用python实现一个3D设计,显示到屏幕,可以交互。不是很懂,但不明觉厉

10. A Python Interpreter Written in Python

aosabook.org/en/500L/a-

手把手教你如何实现python解析器。

11. A Pedometer in the Real World

aosabook.org/en/500L/a-

你用过手机应用记录你每天走的步数,然后发送到朋友圈吗? (没有? 没关系。)这章告诉你如何实现步数记录,怎么算走一步。手机中有加速记,很容易获得你某一时刻在x,y,z三个方向的加速度,用这些参数,如何计算你走了多少步? 知道吗? 不知道,看这章,讲解加实现

12. A Continuous Intergration System

aosabook.org/en/500L/a-

CI System是一个专门用来测试新代码的系统,根据代码提交记录,拿到新的代码,测试,生成报告。这不是关键,关键是 如果test失败,它还会 恢复,然后从失败的那个点在跑,相当于把出错环境重现了。。。

13 A Rejection Sampler

aosabook.org/en/500L/a-

不是很懂,和机器学习相关,如何 计算你赢得象棋比赛的概率,天气对飞机的影响等类似的问题

14 A visual programming toolkit

aosabook.org/en/500L/bl

不太明白

15. A Flow Shop Scheduler

aosabook.org/en/500L/a-

flowshop调度问题,好像很出名的样子,最优化问题,如何从局部最优解找全局最优解

16 Optical Character Recognition

几百行代码使用人工神经网络实现识别手写字母。。。

github源码:

500lines/README.md at master · aosabook/500lines · GitHub

1、自己动手写个Web Server 图文结合,作者非常幽默风趣

Let’s Build A Web Server. Part 1

Let’s Build A Web Server. Part 2

Let’s Build A Web Server. Part 3


看英文吃力的看翻译版

自己动手开发网络服务器(一)
自己动手开发网络服务器(二)
自己动手开发网络服务器(三)

2、自己动手写个解释器,依然是楼上这位高产作者

Let’s Build A Simple Interpreter. Part 1.
Let’s Build A Simple Interpreter. Part 2.
Let’s Build A Simple Interpreter. Part 3.
Let’s Build A Simple Interpreter. Part 4.
Let’s Build A Simple Interpreter. Part 5.
Let’s Build A Simple Interpreter. Part 6.
Let’s Build A Simple Interpreter. Part 7.
Let’s Build A Simple Interpreter. Part 8.
Let’s Build A Simple Interpreter. Part 9.
Let’s Build A Simple Interpreter. Part 10.
Let’s Build A Simple Interpreter. Part 11.
Let’s Build A Simple Interpreter. Part 12.
Let’s Build A Simple Interpreter. Part 13.
Let’s Build A Simple Interpreter. Part 14.

照样有人翻译了

一起来写个简单的解释器(1)
一起来写个简单的解释器(2)
一起来写个简单的解释器(3)
一起来写个简单的解释器(4)
一起来写个简单的解释器(5)
一起来写个简单的解释器(6)
一起来写个简单的解释器(7)
一起来写个简单的解释器(8)

烂尾了.....,还是硬着头皮去看原文吧

3、如果觉得上面的太难,来个简单了,写个Django博客

Django 博客教程:前言
1 - 搭建开发环境
2 - 建立 Django 博客应用
3 - 创建 Django 博客的数据库模型
4 - 让 Django 完成翻译:迁移数据库
5 - Django 博客首页视图
6 - 真正的 Django 博客首页视图
7 - 在 Django Admin 后台发布文章
8 - 博客文章详情页
9 - 支持 Markdown 语法和代码高亮
10 - 页面侧边栏:使用自定义模板标签
11 - 分类与归档
12 - 评论
13 - 已知小问题修正
14 - 使用 Nginx 和 Gunicorn 部署 Django 博客
15 - 使用 Fabric 自动化部署


如果你觉得这些项目学起来太枯燥了,我推荐一个学习平台

这个课程最新颖的地方在于它引入了很多互动式学习机制,比如卡片、闯关、奖励。增加了编程的乐趣也降低了初学者学习编程的难度。


他们还提供了大量的实战练习题,例如100题闯关,你甚至无需在本地安装开发环境,他们的网站和app直接内嵌的代码编辑器,手机或者网页上敲代码非常方便。

他们还配置有专门的老师答疑,监督你学习,按要求学完还会有奖励,适合缺乏自制力的纯小白。

4、如果以上都觉得太无趣,写个爬虫获取能激发你的学习动力,爬网上的在线教程做成电子书

foofish.net/python-craw


5、大家都喜欢玩微信,如果用Python来微信,搞个机器人调戏一下妹纸什么的更有意思

wxpy: 用 Python 玩微信,可能是最优雅的微信个人号 API


图片来源:biezhi/wechat-robot