热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python哪些比赛项目_Python的练手项目有哪些值得推荐?

谢邀。---2016.09.20补充---GitHub-gregmalcolmpython_koans:PythonKoans是个不错的练手项目,我还曾经给它贡献过代

谢邀。

--- 2016.09.20 补充 ---

GitHub - gregmalcolm/python_koans: Python Koans 是个不错的练手项目,我还曾经给它贡献过代码。在你学会Python以后可以拿它练手,一步一步的完成所有待解决的问题。

--- 补充结束 ---

我在我的专栏「Python之美 - 知乎专栏」中写过一篇文章 教你阅读Python开源项目代码 - Python之美 - 知乎专栏。其中介绍了初学者和有一定经验者可以阅读的一些开源项目,最后也介绍了阅读别人代码的一些经验,在这里再发一下,顺便加点其他的推荐:

阅读Python开源项目代码主要有如下三个原因:

1. 在工作过程中遇到一些问题,Google和StackOverFlow等网站找不到解决办法,只能去翻源码。

2. 对某些项目或者方向非常感兴趣,希望深入。

3. 学习遇到瓶颈需要汲取开源项目的经验和用法来做提高。

没有目的的阅读开源项目就是耍流氓。浪费了时间,但是能学到的东西也很少。怎么样根据自身情况去阅读呢?

1. 和兴趣以及工作契合。举个例子,工作中没有机会用到Celery又不是想自己造个轮子,读它的源码做什么?所以要从平时能接触到的那些项目中选取。比如我,我肯定不去看Django的代码,因为日常工作基本遇不到,遇到了现翻就好了。

2. 一个方向只看一两个典型的就可以了。比如Web框架,我只看过Bottle和Flask的源码(其实之前也看过Django的,只是浅尝辄止),而且看Bottle已经是好几年前的事情了。并不是堆的多了更好,有时候反而选择太多会懵。

3. 不同技术阶段的选择代码量、复杂度不一样的项目,下面会具体推荐。

4. 清楚自己看代码的目的。就是你看代码是想了解人家怎么设计、调试BUG、还是只是想学习正确的编程用法呢?其实没有必要细抠每个代码细节,有时候当黑盒看,知道输入输出就可以了。

我个人的喜好

和工作中看别人代码差不多,基本每个人、每个项目、每个团队都有自己写代码的风格,比如变量命名风格、某些语言特性使用方式、代码规范要求、目录风格等,其实开源项目的作者也是一样。看代码,如看人(团队)。 首先介绍下我的喜好(排名分先后):

1. kennethreitz。requests和python-guide作者。他还有一个非常励志的故事,有兴趣的可以看 谁说程序员不是潜力股?

2. mitsuhiko。flask、Jinja2、werkzeug和flask-sqlalchemy作者。

3. sigmavirus24。flake8、pycodestyle(原pep8)、requests、urllib3等项目的主要贡献者和维护者。

4. ask。Celery及相关依赖的作者。

5. ajdavis。mongo-python-driver(pymongo)、tornado等项目的主要贡献者。

6. bitprophet。fabric、paramiko(Python的ssh库)作者。

前2个是公认的Python领域代码写的最好的、最有创意的工程师。

初学者推荐阅读项目

初学者可以先阅读一些代码量比较少的,最好是单文件的项目:

看代码主要是了解别人写代码的方式,语法实践这些内容。看完之后,你可以针对这些项目能解决的问题自己写个项目,写完之后和上述项目去对比一下,看看哪些方面做的不好。

进阶阅读项目

进阶的时候就要阅读一些相对复杂的项目,它们能帮助你提升Python编程技巧:

1. faif/python-patterns。使用Python实现一些设计模式的例子。

2. pallets/werkzeug。flask的WSGI工具集。其中包含了实现非常好的LocalProxy、cached_property、import_string、find_modules、TypeConversionDict等。

3. bottlepy/bottle。阅读一个Web框架对Web开发就会有更深刻的理解,flask太大,bottle就4k多行,当然如果你有毅力和兴趣直接看flask是最好了的。

4. msiemens/tinydb。了解用Python实现数据库。

6. pallets/click。click已经内置于在flask 0.11里,提供命令行功能,值得阅读。

除此之外Web开发者可以阅读一些相关的项目:

2. jahaja/psdash。使用flask和psutils的获取Linux系统信息的面板应用。

4. pypa/warehouse。如果你使用pyramid,这个新版的PYPI网站,可以帮助你理解很多。

当然,2个学习flask重要的资源必须爆一爆:

2. The Flask Mega-Tutorial。 这个就是《Flask Web开发:基于Python的Web应用开发实战》的原始博客。

500lines

推荐一个非常厉害的项目 GitHub - aosabook/500lines: 500 Lines or Less, 它里面包含了22个由该领域的专家完成,用不到500行的代码实现一个特定功能的子项目。连Guido van Rossum都亲自来写基于asyncio爬虫了,Nick Coghlan、ajdavis也出场了。更具体的介绍可以看Python 的练手项目有哪些值得推荐? - 小小搬运工的回答。

最后再推荐一些更复杂的项目,可能不算练手的范畴,但是对于练手的技艺提高有很大帮助(您总不希望一直写练手项目吧),可以学到更多的项目设计、编程技巧等方面的内容:



推荐阅读
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 本文探讨了在当前开发环境中使用Django 1.5和Python 3.3的情况下,如何解决AWS和GAE仅支持Python 2.7的问题,并提供了相应的解决方案。 ... [详细]
  • Python与PyCharm:理解两者之间的差异
    本文旨在阐述Python编程语言与PyCharm集成开发环境(IDE)之间的主要区别。Python作为一种广泛使用的高级编程语言,以其简洁明了的语法著称;而PyCharm则是专为Python开发者设计的强大工具集。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文介绍如何在Django项目中利用UpdateView更新数据后,根据主键(pk)自动重定向至对应的DetailView页面,实现流畅的用户交互体验。 ... [详细]
  • 日志记录对于软件开发至关重要,特别是在调试和维护阶段。通过日志,开发者能够追踪错误源头并了解系统的运行状态。本文将探讨如何在Django框架中有效配置和使用日志记录功能。 ... [详细]
  • 本文探讨了在Windows 7 x64系统上使用easy_install工具时遇到的问题及解决方案,特别是当尝试安装Django活塞时出现的路径问题。 ... [详细]
  • 本文详细介绍了Django框架内置的对象关系映射(ORM)机制,包括其工作原理、如何连接MySQL数据库以及ORM的主要优势和局限性。同时,提供了配置和使用Django ORM的具体步骤。 ... [详细]
  • 深入理解Django中的AJAX应用
    本文详细介绍了AJAX技术及其在Django框架中的应用。AJAX,即异步JavaScript和XML,允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页。 ... [详细]
  • 作为一门广受赞誉的编程语言,Python因其简洁性和强大的功能,在Web开发、游戏设计、人工智能、云计算、大数据处理、数据科学、网络爬虫及自动化测试等多个领域得到广泛应用。本文将介绍2018年最受欢迎的五款Python框架,帮助开发者更好地选择合适的工具。 ... [详细]
  • Django Admin 插件详解与应用
    本文介绍了 Django Admin 的主要功能及其在项目开发中的作用,包括如何通过模型类操作数据库、自定义 Admin 方法以及多种配置选项,旨在帮助开发者快速掌握 Django Admin 的使用技巧。 ... [详细]
author-avatar
mobiledu2502928311
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有