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

GitHub上有什么值得学习,简单的,易读的Python项目?-Python教程

本人是大二的学生,平时无聊用Python给Mac写了一个小的天气预报的项目,发到了github上了,github.comjamesxu182MyWeather。非常好奇大型软件是怎么开发的,复杂的UI是如何设计的。敢问大神github上有哪些简单的,适合我这个水平的Python项目。
本人是大二的学生,平时无聊用Python给Mac写了一个小的天气预报的项目, 发到了github上了,github.com/jamesxu182/M
非常好奇大型软件是怎么开发的,复杂的UI是如何设计的。
敢问大神github上有哪些简单的,适合我这个水平的Python项目。

回复内容:

Ultimaker 3D打印机的上位机软件Cura的UI是Python写的,用的Wxpython。当然,引擎是C++写的。我个人觉得挺有趣的。软件规模适中,功能完整,包含了跨平台配置的知识,和C++引擎通信的知识,OpenGL等。涉及一些3D打印方面的专业知识但是并不复杂,重点还是在UI和功能设计
daid/Cura · GitHub

gleitz/howdoi · GitHub
一个很有趣的命令行小工具,代码不多,写的非常 Pythonic。

再推荐几个适合阅读的好项目,不过可能比较大,要花点功夫去读。
  • kennethreitz/requests · GitHub
  • mitsuhiko/flask · GitHub
  • kennethreitz/tablib · GitHub
  • mitsuhiko/werkzeug · GitHub
tornado算么。 bottle.py shadowsocks就不错啊,好像作者去知乎了

具体还看想学些那方面了,也要看自身的基础如何,同时也建议分阶段来看。

不过具体的话还是依题主的情况来说好了,不然这个问题也就没有具体的答案。


首先可以说点不想干的话题,比如:

  • 题主的代码仓库里好像没有ignore掉pyc文件...
  • 在看到题主用了bs4的同时我还看到了urllib2... github.com/Jamesxu182/M
  • 以及从这里可以看出题主的前端水平似乎... github.com/Jamesxu182/s

由此似乎可见:

  • 题主git还没玩熟 or 有点不拘小节
  • 对python的生态圈还不是很了解 or 不屑于用requests那样的装逼库
  • ... ( ╯□╰ )

然后,作为一名从web开发起步的老菜鸟,先分享下大概的学习经历好了。


鄙人大概也是大二的时候(2012年秋)真正开始用python的,当然前面有玩flash的背景,所以对同类的脚本语言,上手还算比较习惯。比如当时的ActionScript2.0的水平大概是这样子的(300行左右代码):koalangelion.deviantart.com


中间的过程还是从略好了,毕竟是业余玩家。到现在零零碎碎也有两年了吧,现在的python水平… 还真不好说,简单举个粒子大概是这样的:gitcafe.com/restait/buf

所以回答这个问题的话,首先我觉得这些编程的东西,对于题主来说,需要学习的还有很多。。。

当然能在大二就用python写个mac上用的小工具还知道放到github上,且不说代码水平,至少这种意识还是挺不错的。然而人和人之间,时代与时代之间自然是有差别,自然同为大学生,我还买不起mac,自然同为大学生,我也不能和那些初二就混IRC还发pull request的中学生相比…

所以我觉得题主可能更在意的是怎么组织一个大型的软件项目,以及如何造一个复杂的UI。而这些东西,其实github上面不是很多,能作为学习参考的就不多了,而使用python作为主力语言的就更少了... 原因大家懂的,至少开源出来的不是很多。


而且这里有两点提示:一是python不太适合用来构造一个完整的大型项目,二是python在图形界面这边确实还是短板。


然后有了上面这些铺垫,感觉再推荐些好的github项目也不迟。这里我觉得其实可以避免一个误区,就是很多好的python项目,恰恰不在github上面,比如SQLAlchemy(bitbucket,你懂的),比如BeautifulSoup(lauchpad)。所以这两个虽然也是适合研读的好项目,不过因为不符合github这个约束,类似的也就不涉及了。


先说些个人觉得对自己学习python比较有益的且在github上托管的项目好了(web开发向top6,下面的条目不含github.com/前缀):

  • pylons/pyramid
  • kennethreitz/requests
  • defnull/bottle
  • andymccurdy/redis-py
  • douban/douban-client
  • mitsuhiko/jinja2

这些项目大多是看过源码的,不过主要还是有文档的看文档。不过要说简单的,适合题主水平的,可以看下redis-py、requests和douban-client,pyramid这种结构比较庞大的,一开始上手看源码可能会有点吃力(依赖zope.interface的项目大多都这样,比如twisted,scrapy)。bottle的话虽然简单,但是没有什么太多实际可以借鉴的地方,毕竟把全部代码揉在一起,在IDE还没有智能到可以自动分页的时代,看起来实在是太恶心了...


其他有些项目也是不错的,不过本人毕竟没有细看过源码(比如shadowsocks),这里也就不做推荐了。所以真要推荐的话,题主可以在上面的六个里面随机选两个了解下。有时候上手难点也无所谓,只要不是太恶心的项目,也还是能摸透的(实不相瞒,pyramid从入门到玩转大概有一年的时间间隔)。


而django之流,拿来用还可以,深入的话其实也是个巨坑,当然这里我还是不黑django了...


最后留点相关提示,有时候学习一个项目,具体的代码实现不是重点,而是如何一步步演进且维护到现在,那些最初留下来的,以及后来被舍弃掉的,这些决策,其实也可以理解为一种潜在的设计模式,而所有这些潜藏在项目之下的,才是更值得学习的地方。至于为什么前面说六选二呢,因为单从一个项目去认知整个python世界,也是片面的,于是乎这里就不嘲讽django和tornado了。所以进而推广,题主要是有志于做点大项目,有空应该多了解些工业上常用的语言,参与些实战项目攒攒经验,毕竟单从python去了解这个编程世界也是片面的,于是乎这里我就不黑js了。

n0tr00t/Sreg · GitHub

这个,可以查看指定Email或手机号码或用户名都注册过哪些网站。
也就200行左右哦。
还可以扩展网站注册查询插件


一看吓一跳,原来那些个听都没听过的网站我都注册过? Django 强烈推荐mininet,搞网络的mininet源码是必读的。代码结构清晰易读,基本上一两个小时就能够完全读懂mininet,但要理解里面的精髓,还是需要时日的。 我推荐requests,可以学习Python代码和注释的风格
推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • python3 logging
    python3logginghttps:docs.python.org3.5librarylogging.html,先3.5是因为我当前的python版本是3.5之所 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
author-avatar
上官王木木
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有