python3_00.入门
了解,建议,资源。继续更新~~~~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.>
即便假借特例的实用性之名,也不可违背这些规则。
[*] Errors should never pass silently. Unless explicitly silenced.
不要放过一切错误,除非错误本身需要以忽略对待。
[*]
In the>
面对不明确的定义,拒绝猜测的诱惑。
[*] 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.>
做比不做好,但立马去做有时还不如不做。
[*]
If the implementation is hard to explain, it’s a bad>
如果实现很难说明,那它是个坏想法。
[*]
If the implementation is easy to explain, it may be a good>
如果实现容易解释,那它有可能是个好想法。
[*]
Namespaces are one honking great>
命名空间是个绝妙的想法,让我们多多地使用它们吧!
八荣八耻
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以单步跟踪为耻。
以空白分隔为荣,以制表分隔为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以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文件)的文件名,且不带路径和文件扩展名。
页:
[1]