python3_00.入门

发布时间:2019-09-24 08:38:58编辑:auto阅读(1834)

        了解,建议,资源。继续更新~~~~



    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为荣,以冗余拖沓为耻。

    以总结思考为荣,以不求甚解为耻。



    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、导入:

        导入总应该放在文件顶部, 位于模块注释和文档字符串之后, 模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组:

    1. 标准库导入

    2. 第三方库导入

    3. 应用程序指定导入

    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文件)的文件名,且不带路径和文件扩展名。

        

关键字