学习Python的一些Tips

0. Python安装
  官网提供多种方式,一般Windows下直接安装exe即可;Linux下基本上自带python;另外也提供源码,也可自行编译;
  若安装后无法使用,则检查一下环境变量是否设置正确。
  额外:除了最主要的官网资料、文档外,Python的wiki也提供了很多有用的信息

1. Python相关源码
  0) 标准库
  1) PyPi包索引(可通过pip工具安装)
  2) GitHub上的Python项目
  3) Code activestate上面的Python代码片段

2. Python安装包
  0) msi或exe格式直接运行安装
  1) pip方式安装,pip install 可安装whl格式或新版本pip下可直接安装包PyPi下指定的包
  2) easy_install 安装egg格式的包
  3) 对于提供源码的包,可通过python setup.py install 安装,一般会提供setup.py文件

3. Python开发环境
  0) vim /notepad++/Sublime Text等一系列编辑器
  1) 自带的基于Tk的IDLE/IPython
  2) PyCharm/Eric或者Eclipse PyDev/VS等基于插件的IDE

4. 命名、代码规范
  0) Google Python Style Guide
  1) PEP8 Python编码规范
  2) 使用pylint、pyflakes、PEP8等工具检查代码

5. 注释、文档
  0) 文档包括注释和文档字符串,一般在变量名、函数名、模块名和类名中
  1) Python只有单行注释,对于‘‘‘‘‘‘的文档字符串也可当作注释;不过不太建议,代码风格可能不太规范

6. 测试代码
  0) 对于简单的单个模块可用:if __name__ == ‘__main__‘内容中添加测试内容也可
  1) 标准库中的doctest测试包,把测试写到文档字符串中也起到一定的文档说明的作用,其中文档字符串内容为:
    字符 >>> 后面是一个函数调用,下一行是期望的执行结果,此后调用doctest.testmod()并在执行时增加-v选项即可
  2) 标准库中的unittest模块进行单元测试,其需要实现该包含测试方法的继承类,此后调用unittest.main()执行所有的测试用例
  3) 第三方的测试包nose,其只需要使得以test开头的函数作为测试用例;测试文件xxx.py不需要写if __name__ == ‘__main__‘,
    此后执行nosetests xxx.py即可
  4) 集成测试Test Discovery,可测试项目中多个测试用例文件;使用方式:python -m unittest discover
  5) 各个Python测试框架,如pytest、tox框架

7. 持续集成(自动化构建、测试系统)
  0) buildbot
  1) jenkins
  2) travis-ci
  3) coverage代码覆盖率测试工具
  4) tox

8. 调试代码
  0) 最一般的就是在需要的地方调用print打印信息
  1) vars()函数调用可打印参数列表内容,结合装饰器即可方便在调用实际函数前后打印、获取某些信息或是执行调用其他函数
  2) 使用pdb调试器,使用方法:python -m pdb xxx.py

9. 日志记录
  0) 简单的用print打印信息至控制台或者文件
  1) 使用标准库中的logging模块,提供打印级别、格式、目标、过滤器等

10. 优化代码
  0) 一般情况下是先优化算法、数据结构;
  1) 使用标准库time模块的time函数测量执行时间,计算时间差可粗略计算执行时间
  2) 使用标准库timeit模块的timeit函数可简单测试代码片段的执行时间
  3) 使用标准库timeit模块的repeat函数可多次测试代码片段
  4) 优化小tips:
    0. 优化数据结构,比如:列表解析通常比for循环自己添加元素更快
    1. 优化算法
    2. Cython用来生成C扩展,Python中使用C写成的库(与CPython不一样,后者为Python默认实现的解释器)
    3. 另外某些计算的数学库,还可以使用NumPy(C语言实现)
    4. 对于某些通过分析器分析得到的确需要提高性能的部分可以使用C扩展来实现,以提高性能
    5. 使用标准库ctypes模块整合C语言库的实现
    6. 使用PyPy解析器(由Python实现的解析器,内部可能用到JIT即时解析器、沙盒等),其比CPython解释器更快

11. 源码控制
  0) Git
  1) SVN
  2) CVS
  3) Mercurial(Hg)
  4) 其他

12. 程序打包
  0) Distutils打包程序
  1) 结合0)使用sdist命令打包
  2) 结合0)使用bdist命令打包并创建安装程序
  3) 结合0)使用扩展python,需要提供setup.py,build_ext命令打包
  4) 使用py2exe等第三方工具创建可执行程序,同样也需要提供setup.py
  5) 其他第三方打包工具

13. 一些不错的Python学习资源或者其他相关资料
  0) https://github.com/jobbole/awesome-python-books
  1) http://docs.python-guide.org/en/latest/#
  2) https://zhuanlan.zhihu.com/p/22275595
  3) https://www.zhihu.com/question/29138020
  4) https://github.com/Yixiaohan/show-me-the-code
  5) https://readthedocs.org/
  6) https://github.com/vinta/awesome-python

时间: 2024-10-23 04:39:10

学习Python的一些Tips的相关文章

编程零基础应当如何开始学习 Python?

提前说一下,这篇福利多多,别的不说,直接让你玩回最有手感的怀旧游戏,参数贴图很方便自己可以根据喜好修改哦. 本篇通过以下四块展开,提供大量资源对应. 选一个好版本 有没有看过<在下坂本,有何贵干?>那个坂本可以装B,Python的版本则是你的工作环境. 首先,在学习之前一定会考虑一个问题--Python版本选择对于编程零基础的人来说,选择Python3. 1.学习基础知识 首先,Python 是一个有条理的.强大的面向对象的程序设计语言.建议从下面课程开始: Python 教程 Python

学习Python随想

进入大三之后进入了一周基本都是专业课的状态,虽然相比之前几个学期课时量减少了,但实际上学要学习的任务却大大增加了,而类似于Python,spss这一类的课程是之前之前并没有听说过的,但在上过两周之后发现,Python是类似于c语言一类的课程,而之前的c语言和数据结构学得并不好,所以其实在内心深处是有一丝丝的惧怕的,希望在实践课上能多做一些类似于第一次的学打代码的联系,多找找感觉. 课堂进度十分之快,时而跟得上时而跟不上,而一旦跟不上就会跟多米诺骨牌似的,影响接下来的课堂学习.在智慧云教室最大的感

【个人计划】告别英雄联盟,开始学习Python

不知不觉中接触英雄联盟已经快两年了,记得是大四那年找完工作,一下比较清闲,宿舍刚好有lol的氛围,于是乎,四个新手在何大神的带领下,走上了lol的道路.不得不说,从那以后,花费在lol上的时间太多啦,据我估计,个人玩了将近2000了吧,别看局数这么多,其实就是个渣渣,技术太菜了,这也就是我告别英雄联盟的原因啦,根本没有玩这个游戏的天赋,技术上没有一点点提高,一直就是在浪费时间罢了. 就我个人而言,1.在补兵方面,时好时坏,而且有时候性子急,不太注重前期的补兵发育,往往导致输的结局:2.游戏中大部

学习python第一天

学习Python第一天 Python小白,做Linux运维5年,纯系统运维已经不能满足日常工作需要,所以学习Linux运维开发入门级语言python 前言: Python, 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议. Python语法简洁清晰,特色之一是强制用空白符(white

重新学习python系列(一)? WTF?

重新学习python:两年前学了点python之后就一直没做做过啥项目, 基本上全忘光了,复习一下搞点事情 or |and & ord() ascii转16进制 chr()  16进制转ascii >>> u'ABC'.encode('utf-8') 'ABC' >>> u'中文'.encode('utf-8') '\xe4\xb8\xad\xe6\x96\x87' >>> 'abc'.decode('utf-8') u'abc' >&g

Python学习--Python基础语法

第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: Window上在安装Python时已经已经安装了默认的交互式编程客户端,提示窗口如下: 在Python提示符中输入一下文本,然后按回车查看运行结果: print 'hello world'; 输出: hello world 脚本式编程 让我们来写一个简单的Python脚本,所有的Pytho

几条学习python的建议

熟悉python语言, 以及学会python的编码方式. 熟悉python库, 遇到开发任务的时候知道如何去找对应的模块. 知道如何查找和获取第三方的python库, 以应付开发任务. 学习步骤 安装开发环境 如果你在window下, 去下载pythonxy安装起来, 然后运行python, 进入python解释环境. 如果你在ubuntu下, 执行: sudo apt-get install python, 然后在命令行下运行python, 进入python解释环境. 学习方法 作为一名成熟的

鱼C《零基础入门学习Python》10-17节课时知识点总结

第10讲:列表:一个打了激素的数组 1. 列表都可以存放一些什么东西?  我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型. 2. 向列表增加元素有哪些方法?  三种方法想列表增加元素,分别是:append().extend() 和 insert().    3. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?  append() 方法是将

学习python的小随笔

Python在课表中的名字是高级语言程序设计.上了两周的专业课,我想说我真的是想来学教育的,现在成了计算机了.我还想说,有没有一种可以用中文写程序的软件,有志向的大佬们赶紧弄个吧!       其实关于学习Python倒是不反感,无论是当初学习c++,还是现在学Python,都感觉这个东西挺有意思的.当你能把一个程序写出来并且运转成功之后,那种成就感是难以形容的.(哪怕是对着书敲上的)       希望老师教学中.把我们当做一个程序小白,很多老师以为学过了就精通了,可是事实不是那样.个人感觉Py