Python第二天(缩进规则、编码规范、标识符命名、关键字)
Python采用代码缩进和冒号(:)来区分代码块之间的层次。
对于类定义、函数定义、流程控制语句,异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意:Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)
例如:
1 height = float(input("输入身高:")) 2 weight = float(input("输入体重:")) 3 bmi = weight/(height*height) 4 5 # 判断身材是否合理 6 if bmi < 18.5: 7 # 下面两行同属于if分支语句中包含的代码,因此属于同一作用域 8 print("BMI指数为:"+str(bmi)) # 输出BMI指数 9 print("体重过轻") 10 if bmi >= 18.5 and bmi < 24.9: 11 print("BMI指数为:"+str(bmi)) # 输出BMI指数 12 print("正常范围,注意保持") 13 if bmi >= 24.9 and bmi < 29.9: 14 print("BMI指数为:"+str(bmi)) # 输出BMI指数 15 print("体重过重") 16 if bmi >= 29.9: 17 print("BMI指数为:" + str(bmi)) # 输出BMI指数 18 print("肥胖")
Python对代码的缩进要求严格,同一级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。
例如:对同一作用域的代码修改缩进量,会导致报错
对于Python的缩进规则,可以这样理解,Python要求属于同一作用域中的各行代码,它们的缩进量必须一直。但是具体缩进量为多少,并不做硬性规定;
编码规范:
Python 采用 PEP 8 作为编码规范,其中 PEP 是 Python Enhancement Proposal(Python 增强建议书)的缩写,8 代表的是 Python 代码的样式指南。
编码规则:
1.每个import语句只导入一个模块,尽量避免一次导入多个模块,例如:
1 # 推荐
2 import os
3 import sys
4 # 不推荐
5 import sys,os
2.不要再行尾添加分号,也不要用分号将两条命令放在同一行,例如:
1 # 不推荐
2 height = float(input("输入身高:")) ; weight = float(input("输入体重:"));
3.建议每行不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠\进行连接。例如,如果一个字符串文本无法发实现一行完全显示,则可以使用小括号将其分开显示,代码如下:
1 # 推荐
2 a = ("马踏飞燕变驴踩胖鸟,贴张文物图就算文创:"
3 "博物馆文创,越走越邪门?")
4 # 不推荐
5 a = "马踏飞燕变驴踩胖鸟,贴张文物图就算文创: " \
6 "博物馆文创,越走越邪门?"
注意:此规范适用于绝对大多数情况,但以下两种情况除外:
导入的模块语句过长;
注释里的URL;
4.使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行
5.通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。
标识符命名规范:
标识符的主要作用就是作为变量、函数、类、模块以及其他对象的名称;
Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:
- 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
- 标识符不能和 Python 中的关键字相同。
- Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
例如,下面所例举的标识符时合法的:
1 UserID
2 name
3 mode
4 user_age
以下命名的标识符不合法:
1 2hello #不能以数字开头
2 try #try是关键字,不能作为标识符
3 $money #不能包含特殊字符
4.在 Python 中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如下面:三个变量之间,就是完全独立,毫无关系的,他们彼此之间是相互独立的个体;
1 age = 10
2 Age = 10
3 AGE = 10
5.Python 语言中,以下划线开头的标识符有特殊含义,例如:
以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
以双下划线开头的标识符(如__add)表示类的私有成员;
以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。
因此,除非特定场景需要,应避免使用以下划线开头的标识符。
另外:Python允许使用汉字作为标识符(但我们尽量避免使用汉字作标识符);
不同场景的标识符,其名称也有一定的规范可循:
当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
模块内部的类名,可以采用 "下划线+首字母大写" 的形式,如 _Book;
函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;
常量命名应全部使用大写字母,单词之间可以用下划线分割;
关键字:
保留字是 Python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名;
查看关键字:
所有的关键字:
需要注意的是,由于 Python 是严格区分大小写的,保留字也不例外。所以,我们可以说 if 是关键字,但 IF 就不是关键字。