注释¶
注释是指在代码中对代码功能解释说明的标注性文字,可以提高代码的可读性。注释的内容将被Python解释器忽略,并不会在执行结果中体现出来。
单行注释:¶
从符号“#”开始直到换行为止,其后面所有的内容都作为注释的内容而被解释器忽略。
多行注释:'''...''' / """..."""¶
注意是**英文引号(三个单引号或三个双引号)**,包含在内的代码都将被解释器忽略,可以分为多行编写注释。 通常用来为Python文件、模块、类或函数等添加版权、功能等信息,也经常用来解释代码中重要的函数、参数等信息,以便于后续开发者维护代码。
中文声明注释¶
在Python中编写代码时,如果用到指定字符编码类型的中文编码(一般为utf-8),则需要在文件开头加上中文声明注释,这样可以在程序中指定字符编码类型的中文编码,不至于出现代码错误。
快捷注释¶
在python解释器中,如果需要将某一段代码注释掉不予执行,可以选中后按下Alt+3来实现,通过Alt+4来取消。
代码缩进¶
Python采用代码缩进和冒号“:”(英文符号)区分代码之间的层次。
缩进可以使用空格或Tab实现。使用空格时,在通常情况下采用4个空格作为一个缩进量,而使用Tab时,则采用一个Tab键作为一个缩进量。在通常情况下建议采用空格进行缩进。
在Python中,对于类定义、函数定义、流程控制语句,以及异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。此类情况下,如果“:”输入正确,按下Enter一般会自动缩进。
也可以选中代码后使用快捷键Ctrl+[和Ctrl+]来实现缩进和取消缩进。
编码规范:PEP 8¶
PEP是Python Enhancement Proposal的缩写,其中文含义是Python增强建议书,而“8”表示版本号。PEP 8是Python代码的样式指南。 使用特定的编辑器如pycharm等可自动识别不符合规范的代码,可根据需要和提示进行修改,此处仅做了解。且代码编写不符合PEP 8不一定影响代码运行,初学者可不遵守。 以下举例:
-
每个import语句只导入一个模块,尽量避免一次导入多个模块。
-
不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。
-
建议每行不超过80个字符,如果超过,则建议使用小括号“()”将多行内容隐式地连接起来,而不推荐使用反斜杠“\”进行连接。
以下两种情况除外:
-
导入模块的语句过长。
-
注释里的URL。
-
使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。
-
在通常情况下,运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔。
-
应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。
-
虽然适当使用异常处理结构可以提高程序容错性,但是不能过多依赖异常处理结构,适当的显式判断还是必要的。
命名规范¶
使用命名规范可以使人们更加直观地了解代码所代表的含义。
-
模块名尽量短小,并且全部使用小写字母,可以使用下画线分隔多个字母。
-
包名尽量短小,并且全部使用小写字母,不推荐使用下画线。
-
类名采用单词首字母大写形式(即Pascal风格)。
-
模块内部的类采用下画线“_”+Pascal风格的类名组成。
-
函数、类的属性和方法的命名规则同模块的命名规则类似,也是全部使用小写字母,多个字母之间使用下画线“_”分隔。
-
常量命名时采用全部大写字母,可以使用下画线。
-
使用单下画线“_”开头的模块变量或函数是受保护的,在使用from xxx import*语句从模块中导入时,这些模块变量或函数不能被导入。
-
使用双下画线“__”开头的实例变量或方法是类私有的。
保留字(关键字)¶
保留字是Python已经被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用,否则会提示“invalid syntax”的错误信息。 所有保留字是**区分字母大小写**的。 可以通过一下代码查询获得:
标识符¶
标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。 命名规则如下:
-
由字母、下画线“_”和数字组成,并且第一个字符不能是数字
-
不能包含空格、@、%和$等特殊字符
-
区分字母大小写
-
以下画线开头的标识符有特殊意义,一般应避免使用相似的标识符。
-
以单下画线开头的标识符(如_width)表示不能直接访问的类属性,也不能通过“from xxx import *”导入。
-
以双下画线开头的标识符(如__add)表示类的私有成员。
-
以双下画线开头和结尾的是Python专用的标识,例如,“init()”表示构造函数。
- 允许使用汉字作为标识符,但建议尽量不要使用汉字作为标识符。
变量¶
在Python中,变量严格意义上应该称为“名字”,也可以理解为标签,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。
就像取快递一样,内存就像一个巨大的货物架,在Python中定义变量就如同给快递盒子贴标签。快递存放在货物架上,上面附着写有取货码的标签。当客户来取快递时,并不需要知道它们存放在大型货架的具体位置。只需要客户提供取货码,快递员就会把快递交给客户。变量也一样,你不需要准确地知道信息存储在内存中的位置,只需要记住存储变量时所用的名字,再使用这个名字就可以了。
命名¶
变量的命名并不是任意的,应遵循以下几条规则:
-
变量名必须是一个有效的标识符,因此也应遵循标识符命名规则
-
不能使用Python中的保留字
-
慎用小写字母l和大写字母O(易与数字1和0混淆)
-
应选择有意义的单词作为变量名
赋值¶
为变量赋值可以通过等号(=)来实现,解释为“将某个值赋给某个变量或将某些值赋给某些变量”。Python是一种动态类型的语言,也就是说,变量的值和类型可以随时变化。
原理是先将某个值写入内存某个地址,然后使被赋值的变量名指向该地址,使用该变量时,将顺着地址取到该值。允许多个变量指向同一个值,此时每个变量都将指向同一内存地址。
-
一对一:变量名 = value
-
一对多:变量名 = value1, value2, value3, ...(多值被解释为一个元组)
-
多对多:变量名1, 变量名2, ... = value1, value2, ...(需一一对应,分别赋值)
-
多对一:变量名1 = 变量名2 = ... = value1
number = 404 # 创建变量number并赋值为404
number = 505 # 此时变量number被重新赋值,不再是404,而是505
number = "505" # 此时变量number被重新赋值,不再是数值505,而是字符串"505"
number0 = "505" # 创建变量number0,指向与变量number值地址相同的"505"("505"在内存中已经有了地址)
my_school = "南京医科大学" # 创建变量my_school并赋值为"南京医科大学"
number = 404, 505 # 此时变量number被重新赋值,不再是字符串"505",而是元组(404, 505)
number1, number2 = 404, 505 # 创建变量number1和number2,并分别赋值为404和505
number1 = number2 = 404 # 创建变量number1和number2,并都赋值为404
内置常量¶
常量是程序在运行过程中,值不能改变的量,如现实生活中的居民身份证号码、数学运算中的圆周率等,这些都是不会发生改变的,它们都可以定义为常量。在Python中,并没有提供定义常量的保留字。不过在PEP 8规范中规定了常量由大写字母和下画线组成,但是在实际项目中,常量首次赋值后,还是可以被其他代码修改的。
有少数的常量存在于内置命名空间中:
-
False:布尔类型的假值,代表数字0
-
True:布尔类型的真值,代表数字1
-
None:NoneType 类型的唯一值,常用于表示缺少值(空值)





