Python的程序通过解析器进行读取,再通过分词器生成词元流,转为Unicode代码点。
行
每个程序的源文件为了便于编写和阅读,都会有多行。那么如果一行很长你的屏幕显示不下去,或者你不希望那么一行那么长,如何处理?
- 显示拼接行
可用反斜杠(\)拼接。规则如下:在不以注释内的反斜杠结尾时,上一行将与下一行拼接成一行,然后这个反斜杠及其后的换行符被删除。
name = "adsf\
sfadsfadsfasdf"
print(name)#adsfsfadsfadsfasdf
- 隐式拼接行
圆括号、方括号、花括号内的表达式可以分成多个物理行,不必使用反斜杠。
month_names = ['January','February','March', # 1-3月份'April','May','June', # 4-6月份'July','August','September', # 7-9月份'October','November','December'] # 10-12月份
- 隐式行拼接可含注释;
- 后续行的缩进并不重要;
- 还支持空的后续行。
缩进
程序编写时,使用空白符对行进行缩进,形成层级。不紧紧会了美观,还通过计算缩进层级决定语句组块。
首个非空字符前的空格数决定了该行的缩进层次。(注意:缩进不能用反斜杠进行多行拼接,在用多个反斜杠进行多行拼接时,首个反斜杠之前的空白符才决定缩进的层次)
# 函数定义的缩进
def calculate_average(numbers):# 第一级缩进 (4空格)total = sum(numbers)count = len(numbers)if count == 0:# 第二级缩进 (8空格)return 0 # 特殊情况处理else:average = total / countreturn average# 类定义的缩进
class Student:# 类体第一级缩进 (4空格)def __init__(self, name, age):# 方法体第一级缩进 (8空格)self.name = nameself.age = agedef display_info(self):# 方法体第一级缩进 (8空格)if self.age >= 18:# 第二级缩进 (12空格)print(f"{self.name} 是成年人")else:print(f"{self.name} 是未成年人")# 循环和条件语句的缩进
numbers = [1, 2, 3, 4, 5]
even_squares = []for num in numbers:# 循环体第一级缩进 (4空格)if num % 2 == 0:# 条件体第一级缩进 (8空格)even_squares.append(num ** 2)else:print(f"跳过奇数: {num}")print(f"偶数的平方: {even_squares}")# 多行语句的缩进
long_string = ("这是一个非常长的字符串,""为了可读性我们把它分成多行,""注意括号内的对齐方式"
)result = some_long_function_name(argument1, argument2,argument3, argument4
)