美文网首页Python
python参考手册——第二章

python参考手册——第二章

作者: 转身丶即天涯 | 来源:发表于2017-12-11 18:19 被阅读16次

    行结构与缩进

    代码要保持相同的缩进,如果缩进格式不同会报IndentationError,也就是缩进错误


    image.png

    所以如果看到这个错误,说明你的代码缩进有问题。

    续行符 ‘\’

    当一行代码太长时,可以考虑使用\放在结尾,来增加程序的可读性。

    空的函数体或者代码块,pass

    如果一个函数体或者代码块什么都没有,可以写上pass。有点类似于C语言中的continue,程序会继续执行。

    空格还是tab

    根据PEP8 python编码规范,鼓励开发人员使用宫格,而非tab。
    因为系统遇到tab(制表符)时会移动到下一个以8为倍数的地方,其中用空格来填充。
    也就是说,如果你的代码中第5列使用了tab,那么缩进后就在第13列,中间都是空格,这样容易引发格式错误。
    综上所述,使用空格。

    代码在写一行

    如果你的代码很短,也可以选择写在一行。比如这样:


    image.png

    但是pycharm会根据PEP8规范进行提示,图中分好下面有个波浪线,说明这不符合PEP8编码规范。
    把鼠标移到这个波浪线上会出现提示


    image.png
    一行最好就做一件事。
    注释

    使用‘#’作为注释,#后面的内容代码都会过滤掉
    还有一种是文档注释,一般写在函数内部,用三个单引号或者双引号

    image.png
    红框中的就是文档注释,一般填写函数的功能,以及参数代表的含义。
    Python的作者很细心,提供一个内建属性doc来查看函数的文档注释。
    通过函数名.doc就能查看函数的文档注释。

    标识符

    标识符

    标识符是识别变量,函数,类,模块和其他对象的名称。
    有一点要必须知道,标识符是区分大小写的,Foo和foo是两个不同的函数。
    而且$%@这样的符号也不能出现在标识符中。
    还有,保留字也不能作为标识符,比如for,in,if,else,def,return等等

    所有保留字如下图:


    image.png

    不用都知道,目前知道常用就即可,以后用到了再说。

    特殊标识符

    开头(一个)的标识符,(比如foo)不能通过import导入
    开头(两个)的标识符,比如(age)代表类的私有成员变量
    前后双
    的标识符,是为了特殊方法保留的。不能乱用。

    数字字面量

    Python内置的数字字面量有4种类型:

    • 布尔
    • 整数
    • 浮点数
    • 复数

    布尔:True,False,表示的值分别是1,0。
    整数:像1234这样的数被解释为整数,想让这个整数表示二进制、八进制、十六进制的话,分别在值得前面加上0,0x,0b。
    浮点数:像123.45,1.23e这样的数
    复数:整数或者浮点数后面加个j就是虚数了,实数加虚数就是复数了。

    字符串字面量

    用单引号,双引号,或者三引号定义,而且定义时开始和结尾的引号必须是同一种引号。
    比如你用双引号开始的,也必须以双引号结束,否则会报snatexError(语法错误)错误。


    image.png

    还有转义的字符得知道


    image.png

    在Python3中,所有的字符串都是unicode编码。不用在字符串前面加u了,加了会报错。

    原始字符串

    在字符串前面加个r,字符串中的内容不会进行转义,比如'\n'就不会换行了。
    一般用在指定文件的路径,比如r"C:\user\xxx"
    也会用在正则表达式中。


    image.png

    容器

    列表,元组,字典
    就说两点,容器内不能使用续行符\,最后一个元素后面可以加,

    运算符

    image.png
    :幂运算,AB,表示A的B次方
    //:整除,8//3,结果是2.多,但是结果只保留整数部分。
    %:取余,8%4,计算结果是2余0,返回余数0
    <<:左进位,4<<2,这个要换算成2进制计算,4的二进制是0000 0100,向左移两位,结果是0001 0000,转回10进制就是16.

    :右进位,同理。

    下面是几个位运算符:
    &:按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
    比如2&3,0010&0011,结果0010,2
    |:按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
    比如2|3,0010|0011,结果是0011,3
    ^:按位异或运算符:当两对应的二进位相异时,结果为1。
    比如23,00100011,结果是0001,1
    ~:按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1
    比如7,0111,结果是1000,8。如果是一个有符号的二进制数,第一位代表符号位,也要跟着取反。

    还有逻辑运算符:
    and:布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
    or:布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
    not:布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

    成员运算符:
    in,not in

    身份运算符:
    is:is 是判断两个标识符是不是引用自一个对象
    is not:is not 是判断两个标识符是不是引用自不同对象

    注意:is 和 ==的区别,is用于判断是否引用了同一个对象,==用于判断左右两边的值是否相等。

    运算符的优先级:


    image.png

    这些了解常用就行。可以用()控制优先级。

    装饰器

    使用装饰器的目的是修改方法或者类的行为,装饰使用特殊符号@,必须放在单独的行上。
    可以使用多个装饰器,但是每个装饰器必须位于不同的行。


    image.png

    源代码编码

    编写python代码时,一般使用标准的7位ASCII码。
    如果想使用其他类别的编码,可以在程序开头的第一行或者第二行加入如下内容:


    image.png

    使用二进制编码:
    s2 = b"abcde"

    检查一个对象使用了什么编码方式?
    要借助一个内建包,import chardet


    image.png

    要注意一点的是,chardet.detect()函数只接受字节数组,所以检测之前要先转化成字节数组
    可以利用bytes()函数转化为字节数组,传入两个参数即可,第一个参数是字符串,第二个是编码格式。
    比如:s4 = bytes(s3, encoding="utf-8")

    到此为止,《Python参考手册》第二章看完了,历时90分钟。

    相关文章

      网友评论

        本文标题:python参考手册——第二章

        本文链接:https://www.haomeiwen.com/subject/rwaiixtx.html