了解,建议,资源。继续更新~~~~
python之禅
Beautiful is better than ugly.
优美胜于丑陋。
Explicit is better than implicit.
明了胜于晦涩。
Simple is better than complex.
简单胜于复杂。
Complex is better than complicated.
复杂胜于难懂。
Flat is better than nested.
扁平胜于嵌套。
Sparse is better than dense.
分散胜于密集。
Readability counts.
可读性应当被重视。
Special cases aren’t special enough to break the rules. Although practicality beats purity.
即便假借特例的实用性之名,也不可违背这些规则。
Errors should never pass silently. Unless explicitly silenced.
不要放过一切错误,除非错误本身需要以忽略对待。
In the face of ambiguity, refuse the temptation to guess.
面对不明确的定义,拒绝猜测的诱惑。
There should be one– and preferably only one –obvious way to do it.
用一种方法,最好只有一种方法来做一件事。
Although that way way not be obvious at first unless you’re Dutch.
虽然一开始这种方法并不是显而易见的,但谁叫你不是Python之父呢。
Now is better than never. Although never is often better than right now.
做比不做好,但立马去做有时还不如不做。
If the implementation is hard to explain, it’s a bad idea.
如果实现很难说明,那它是个坏想法。
If the implementation is easy to explain, it may be a good idea.
如果实现容易解释,那它有可能是个好想法。
Namespaces are one honking great idea – let’s do more of those!
命名空间是个绝妙的想法,让我们多多地使用它们吧!
八荣八耻
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以单步跟踪为耻。
以空白分隔为荣,以制表分隔为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以Pythonic为荣,以冗余拖沓为耻。
以总结思考为荣,以不求甚解为耻。
Python资源大全:
https://github.com/jobbole/awesome-python-cn
入门指南:
http://docs.pythontab.com/python/python3.4/index.html
很有用的解决方案:
http://python3-cookbook.readthedocs.io/
菜鸟教程:
http://www.runoob.com/
python学习资料:
https://www.zhihu.com/question/34907211
python文档:
http://python.usyiyi.cn/
深度开源python经验:
http://www.open-open.com/lib/tag/Python
定义变量的神奇网站:
http://unbug.github.io/codelf/
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
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b9000
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、空格 :
括号内不要有空格.
不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).
参数列表, 索引或切片的左括号前不应加空格.
在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.
不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):
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文件)的文件名,且不带路径和文件扩展名。