了解,建议,资源。继续更新~~~~
python之禅
优美胜于丑陋。
明了胜于晦涩。
简单胜于复杂。
复杂胜于难懂。
扁平胜于嵌套。
分散胜于密集。
可读性应当被重视。
即便假借特例的实用性之名,也不可违背这些规则。
不要放过一切错误,除非错误本身需要以忽略对待。
面对不明确的定义,拒绝猜测的诱惑。
用一种方法,最好只有一种方法来做一件事。
虽然一开始这种方法并不是显而易见的,但谁叫你不是Python之父呢。
做比不做好,但立马去做有时还不如不做。
如果实现很难说明,那它是个坏想法。
如果实现容易解释,那它有可能是个好想法。
命名空间是个绝妙的想法,让我们多多地使用它们吧!
八荣八耻
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以单步跟踪为耻。
以空白分隔为荣,以制表分隔为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以Pythonic为荣,以冗余拖沓为耻。
以总结思考为荣,以不求甚解为耻。
1、python3 与python2区别:
不用太纠结
2、默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#!/usr/bin/Python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;相当于写死了python路径;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。推荐这种写法。
附:
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。
拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可以表示256个字符
GBK/GB2312/GB18030:表示汉字。GBK/GB2312表示简体中文,GB18030表示繁体中文。
Unicode编码:包含世界上所有的字符,是一个字符集。
UTF-8:是Unicode字符的实现方式之一,它使用1-4个字符表示一个符号,根据不同的符号而变化字节长度。
3、注释:
单行注释:以#开头
多行注释:三个单引号(''')或者三个双引号(""")将注释括起来
4、缩进:
PEP8中建议使用4个空格作为缩进,但是却绝对!绝对不能混用Tab和空格。
不建议使用Tab,因为在不同的环境下展现不一样。
5、空行:
顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行. 函数或方法中, 某些地方要是你觉得合适, 就空一行.
6、空格 :
7、导入:
导入总应该放在文件顶部, 位于模块注释和文档字符串之后, 模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组:
8、命名:
如:regex_syntax,py_compile,_winreg
如:BaseServer,ForkingMixIn,KeyboardInterrupt
如:MAX_LOAD
如:my_thread
如:__init__,__new__
9、if __name__ == '__main__':
每一个模块都有一个内置属性__name__。而__name__的值取决与python模块(.py文件)的使用方式。如果是直接运行使用,那么这个模块的__name__值就是“__main__”;如果是作为模块被其他模块调用,那么这个模块(.py文件)的__name__值就是该模块(.py文件)的文件名,且不带路径和文件扩展名。