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

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

http://www.aosabook.org/en/index.html

可以在线看哦

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

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

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

不想看英文的怒点

http://www.ituring.com.cn/article/13057

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

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

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

强烈推荐!!!

强烈推荐!!!

强力推荐!!!

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

本书链接

http://aosabook.org/blog/

目录页:

http://aosabook.org/blog/

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

1. A Template Engine (

http://aosabook.org/en/500L/a-template-engine.html

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 (

http://aosabook.org/en/500L/web-spreadsheet.html

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

3. A Web Crawler

http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html

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

4. Static Analysis

http://aosabook.org/en/500L/static-analysis.html

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

5. Clustering by Consensus

http://aosabook.org/en/500L/clustering-by-consensus.html

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

6. A Simple Object Modle

http://aosabook.org/en/500L/a-simple-object-model.html

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

7. An Archaeology-Inspired Database

http://aosabook.org/en/500L/an-archaeology-inspired-database.html

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

8. Dog Bed Database

http://aosabook.org/en/500L/dbdb-dog-bed-database.html

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

9. A 3D Modeller

http://aosabook.org/en/500L/a-3d-modeller.html

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

10. A Python Interpreter Written in Python

http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html

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

11. A Pedometer in the Real World

http://aosabook.org/en/500L/a-pedometer-in-the-real-world.html

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

12. A Continuous Intergration System

http://aosabook.org/en/500L/a-continuous-integration-system.html

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

13 A Rejection Sampler

http://aosabook.org/en/500L/a-rejection-sampler.html

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

14 A visual programming toolkit

http://aosabook.org/en/500L/blockcode-a-visual-programming-toolkit.html

不太明白

15.A Flow Shop Scheduler

http://aosabook.org/en/500L/a-flow-shop-scheduler.html

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

16Optical Character Recognition

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

github源码:

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

看到Python相关的话题推送,忍不住来水个答案。

推销一些自己的小作品吧。

1.Python写小游戏

先上Github链接(图片与音频素材大部分源于网络,侵删):

CharlesPikachu/Games

里面大概有10几个小游戏,随便举几个例子吧:

(1)“塔防”小游戏

塔防

(2)滑雪小游戏

滑雪

(3)坦克大战v0.2

坦克大战

(4)推箱子

写的都比较糙,每个游戏都有优化和扩展空间~

2. AI自动玩游戏

还是先上Github链接:

CharlesPikachu/AIGames

(1)比如DQN玩T-Rex Run

(2)设计一个策略自动玩贪吃蛇

等等,更多内容可以看我给的Github链接。

3. 深度/机器学习?

在我里分享的不多,上传到Github上的也不多,随手放两个吧:

(1)Faster RCNN算法复现

https://github.com/DetectionBLWX/FasterRCNN.pytorch

(2)FPN算法复现

https://github.com/DetectionBLWX/FPN.pytorch

(3)VGan生成短视频

CharlesPikachu/VideoGan

然后里发过的一些:

(4)风格迁移

Python简单实现图像风格迁移​mp...com/s/n7uIO3V8cNINTjKHldF4Ew

(5)颜值预测

Python实现颜值预测​mp...com/s/d4xvVL_TmDAaoXOcmW4F8w

(6)动漫头像生成

【Python】利用GAN生成动漫头像​mp...com/s/Y2FwTYQnNqKiZ9vpcPkKJw

等等...

4. 爬虫?

先放两个好久没更新的项目吧:

(1)音乐下载器

Github:CharlesPikachu/musicdl

(2)视频下载器

Github:CharlesPikachu/Video-Downloader

(4)个人开源的模拟登录库DecryptLogin

Github:https://github.com/CharlesPikachu/DecryptLogin

中文文档:https://httpsgithubcomcharlespikachudecryptlogin.readthedocs.io/zh/latest/

目前支持利用requests模拟登录以下网站:

库里还有很多简单的爬虫小例子:

(5)简单的数据爬取与分析

Python爬取空间信息(下)​mp...com/s/L7PZdgHztJJ_FDmZ2ttqAgPython简单分析好友​mp...com/s/IR_RJv8wnwbgNSIwnK8BhwPython爬取并简单分析爱淘宝网商品数据​mp...com/s/yIrmJlLT9sXfBVoZjlDdWw

等等。

5. 其他打发时间的东西

【Python】视频转字符动画​mp...com/s/masIDjmfsZ4w4xOZVURO-APython仿制抖音表白小软件​mp...com/s/yFH8rLM-YzE53DKzXQMaaAPython实现烟花特效​mp...com/s/0wJRlGS2QXpEL2XaU_Ke-g

等等。

最后再推荐一下自己:

欢迎搜索关注我的:Charles的皮卡丘,不定期分享有趣好玩的Python项目以及大量的学习资源。

有些基础比较差的同学可能觉得这些例子比较难,不用太担心,毕竟学习都是有一个从难到易,从量变到质变的过程的,这里我推荐你们可以先使用一下“百题斩”这个由夜曲编程出品的产品:

里面有很多相对简单但是很适合新手练习使用的题目案例,这些案例都是从实际复杂的问题中拆分出来的小问题,可以帮助新手更好的巩固基础知识,并为后续完成一些相对较大的工程打好基础。(完成学习之后还可以获得蓝牙键盘等奖励哦~)

练习完之后还可以再试试他家的其他高性价比的python学习课程,针对有python基础,但是学习需求各不相同的小伙伴(里面还有助教在线答疑和社群讨论学习,帮助大家更好地学习课程内容呢~):

感兴趣的小伙伴可以关注一下他家的公主号“夜曲编程”,后台咨询具体的课程细节。注意,他家的课程都是可以开课三天内无条件退的哦,担心课程设置不适合自己的小伙伴完全可以先入手尝试几天,看看课程是否真的适合自己。也扎实的免费课可以拿,去咨询一回复下「免费课程」就行,虽然是免费的,但是也很扎实。

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 自动化部署

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

https://foofish.net/python-crawler-html2pdf.html

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

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

图片来源:biezhi/wechat-robot

2020年6月16日更新:

重新检查整理了下面推荐的项目教程,有些版本老的、内容过期的都做了更新,现在推荐的都是保证可以使用在线环境完成的,大家可以选择自己感兴趣的练习。Learn by doing才是正确的技术学习姿势。

………………………………………………分隔线………………………………………………

最近几天刚好在整理Python项目,项目由易到难,代码量从几十行到几千行,在实验环境里保证可以全部完成。找到你认为有趣的去实现它,把项目做出来,知识才能变成自己的:)

(建议PC端访问,边看教程边在环境里动手实践,手机上仅可查看教程)

入门和进阶篇均为免费课程,可以免费使用在线练习环境。

入门篇

0. Python 新手入门

首先给完全没有编程基础的同学推荐下这个入门教程,做项目也要先上手基础语法,这份教程中的几个实验可以让完全零基础的同学在一下午时间入门 Linux、Python 基础和Github 常用命令,不信可以试试:)

1.Python - Python 图片转字符画

50 行 Python 代码完成图片转字符画小工具。

2.Python - 200行Python代码实现2048

仅用200行的python代码完成2048小游戏的编写。

3.Python 生成个性二维码

使用 Python 基于MyQR实现生成普通二维码,带图片的艺术二维码,动态二维码。

4.Python 实现文字聊天室

实现一个简单的图形界面聊天系统。我们可以通过图形客户端登录聊天室,并与其他成员进行聊天。

5.Python - 全面解析PythonChallenge

本课程带领大家一步一步攻克Python Challenge中的难题,在一个又一个脑洞大开的 Python 问题中提升自己的 Python 水平。

6.使用 Python 创建照片马赛克

使用 Python 创建照片马赛克。我们将目标图像划分成较小图像的网格,并用适当的图像替换网格中的每一小块,创建原始图像的照片马赛克。

7.Python - 基于 Python 的文件备份

Python 做个简单的备份脚本程序,可以备份主目录和系统文件等。

8.Python - Python文本解析器使用Python来解析纯文本生成一个HTML页面的小程序。

9.Python - Python 破解验证码通过一个简单的例子来讲解破解验证码的原理。

10.Python - 用Python做2048游戏通过GUI来体验编程的乐趣。

11.Python - Python实现简单的Web服务器使用 Python 语言实现一个 Web 服务器,探索 HTTP 协议和 Web 服务的基本原理。

进阶篇

12.Python - Python3 色情图片识别

使用 Python3 去识别图片是否为色情图片,我们会使用到 PIL 这个图像处理库,会编写算法来完成对划分图像的皮肤区域。

13.Python - Python实现3D建模工具

本课程将基于OpenGL实现一般CAD软件都会具备的基础功能:渲染显示3D空间的画面并可以操作3D空间中物体。

14. PyQt 实现简易浏览器

基于 Python 3.4 和 PyQt 5 来学习 GUI 编程,课程分为两次实验,第一次实验先简单了解 Qt 各个组件的使用方法,第二次课程将尝试实现一个浏览器。

15. Python基于共现提取《釜山行》人物关系

针对《釜山行》剧本的文本,使用python编写代码分析文本中人物的共现关系,完成对《釜山行》文本的人物关系提取,并利用Gephi软件对提取的人物关系绘制人物关系图。

16.Python - Python实现Python解释器

从实现一个玩具解释器开始学习解释器基本知识,然后考察Python字节码进一步学习理解Python解释器的内部机制,最终实现一个500行以内的Python解释器。

17.Python - 高德API+Python解决租房问题

编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。

18.Python - 基于Flask/RethinkDB/Backbone.js实现TODO List

使用 RethinkDB,Flask 与 Backbone.js 制作一个简单的 todo list。

19.Python 气象数据分析

对意大利北部沿海地区的气象数据进行分析与可视化。

20.NBA常规赛结果预测--利用Python进行比赛数据分析

利用NBA在2015~2016年的比赛统计数据进行回归模型建立,最终在今年2016~2017的常规赛中预测每场比赛的输赢情况。

21.Django打造文件分享系统

介绍如何使用Django框架快速打造文件分享系统,实现搜索功能,分享功能,用户分享文件查询。

综合篇

以下项目都是比较综合、系统的,内容质量都不错,因这些项目需要联网实现或占用环境资源较大,现在是属于会员及训练营项目。

22. 基于 Django 实现问答社区

使用 Django 打造一个完整成熟的社区框架,实现了用户注册,发布讨论,回复讨论,站内搜索等主要功能。

23. 基于 React + Flask 打造私人专属网盘

使用 React 作为前端技术,Python Flask 作为后端技术,实现一个小型的私人网盘应用。

24. Python 实现搜索引擎

首先会讲解爬虫基础并利用 Python 异步特性实现异步爬虫系统,而后会一步一步地将构建索引、索引压缩、排名算法等步骤讲解清楚并编码实现,最后利用异步 web 框架 sanic 构建后端实现一个完整的垂直搜索引擎站点。

25. 基于 Django 实现 Upwork 众包网站

使用 Django 框架实现了世界最大的外包网站 Upwork。在实现过程中,将其分为三大应用模块:用户模块,任务模块,私信消息模块。每个模块都严格按照 Django 框架中的 MTV (Model-Template-View) 模式完成。

26. Python 使用机器学习玩转 Flappy Bird 游戏

通过学习使用纯人工操作,传统计算机视觉,深度学习这三种不同的方式来玩转 pygame 版的 flappy bird 游戏。

27. Python 利用 itchat 进行好友分析和生成好友点赞屏保

使用 itchat 获取好友相关数据,利用 pyecharts 进行可视化分析生成好友性别比例图、好友省级分布图以及好友城市分布 Top10 柱状图,最后使用 pillow 库对好友的头像进行拼接生成屏保。

28. 使用 Python3 编写 Github 自动周报生成器

使用 Python 从 Github 中获取对应代码仓库的贡献度(Commit 信息)及活跃度(Issue 评论内容)等。

29. Python 实现简单邮件客户端

利用 python 标准库实现一个简单邮件客户端,实现对邮箱的登陆,发送格式简单的邮件,以及接收邮件。

30. 仿 StackOverflow 开发在线问答系统

使用Python Flask Web开发框架实现类似StackOverflow的在线问答平台LouQA,具备提问,回答,评论等功能。学习数据库设计,Python Web 开发相关知识。

31. Python 实现中文错别字高亮系统

上线一个错别字高亮系统,输入我们的 MarkDown 文档,输出一个高亮过疑似错别字的HTML文件。

32. Python 二手房信息爬取与数据呈现

使用python爬取二手房信息,并且使用matplotlib 绘图包对爬取的信息进行分析,绘制简单的图表。

33. 基于Pygame开发贪吃蛇和俄罗斯方块

基于Pygame开发贪吃蛇和俄罗斯方块,通过逐步学习Pygame基础知识,到从零开始实现游戏开发

34. Python实现简易局域网视频聊天工具

Python基于OpenCV和PyAudio实现的局域网内视频聊天工具,支持IPv6。优点是校园网/IPv6下不走流量。

35. Twitter数据情感分析

使用Spark MLlib对Twitter上的流数据进行情感分析,并且利用Python的工具包basemap可视化美国不同的州对于曾经的总统候选人希拉里及川普的情感分析结果,通过地理信息可视化我们可直观的感受到这两位候选人的受欢迎程度。

36. Python3 实现火车票查询工具

使用 Python3 抓取 12306 网站信息提供一个命令行的火车票查询工具。通过该项目的实现,可以熟悉 Python3 基础及网络编程,以及 docopt,requests,prettytable 等库的使用。

37. 基于 Flask 与 MySQL 实现番剧推荐系统

基于 Python 的 Flask 框架和 MySQL 实现的简单的番剧推荐系统。将学到如何用 Python 连接 MySQL 数据库,如何查询和展示数据及设计推荐算法等知识。

最近,有一份机器人Python代码合集登陆GitHub,并受到了用户的热烈标星。

自主导航看这里

来自日本的坂井敦,是一个玩机器人的工程师

他和小伙伴们,为了能让更多的机器人,在地球上自如地游走,便为广大同行做了一次这样的Python代码汇总,大类如下——

· Localization (定位)· Mapping (地图构建)· SLAM· Path Planning (路径规划)· Path Tracking (路径追踪)

不难看出,这份合集非常在意,机器人的自主导航能力。

第一个登场的,是“定位”分类下的扩展卡尔曼滤波器 (EKF) 。

这是一个传感器融合的定位方法。蓝线是真实轨迹,黑线是用航位推测法 (Dead Reckoning) 推定的轨迹。绿点是位置数据 (比如GPS) ,红线是EKF估计出的轨迹。红色椭圆是EKF估计的协方差

就像这样,每个词条下面都配了一张动图,还有动图的详解。

坂井说,这样观众就可以更加直观地理解,各种方法背后的思路

果然是温柔的程序猿。

赏心悦目的集合

各种方法的代码都可以免费自取,又有美味的动图,指引前路,还是很幸福吧。

所以,一起来品尝几幅动图——

这是A星算法。

这是势场 (Potential Field) 算法。

这是均匀极性采样 (Uniform Polar Sampling) 。

这是Voronoi路线图法。

以上作品来自路径规划章节,也是最丰盛的一章,有这么长——

里面分15个子类,包括了动态窗口法 (Dynamic Window Approach) ,如基于网格的搜索 (Grid Based Search) 算法等等。

子类还有自己的子类。

帮助机器人定制路线躲避障碍,当事无巨细。

想必,大家会用餐愉快的。

喝前摇一摇

想要更好地用这份合集,来投喂机器人,你需要以下工具:

· Python 3.6.x· Numpy· Scipy· Matplotlib· Pandas· Cvxpy 0.4.x

祝各位的机器人茁壮成长。

并在此献上传送门:https://github.com/AtsushiSakai/PythonRobotics

想了解更多,请关注我们的知乎号:量子位