Skip to content

注释

注释是指在代码中对代码功能解释说明的标注性文字,可以提高代码的可读性。注释的内容将被Python解释器忽略,并不会在执行结果中体现出来。

单行注释:

从符号“#”开始直到换行为止,其后面所有的内容都作为注释的内容而被解释器忽略。

# 这是一行注释
print()  # 这是一行注释
print()  # 这是一行注释
print()  # 这是一行注释

多行注释:'''...''' / """..."""

注意是**英文引号(三个单引号或三个双引号)**,包含在内的代码都将被解释器忽略,可以分为多行编写注释。 通常用来为Python文件、模块、类或函数等添加版权、功能等信息,也经常用来解释代码中重要的函数、参数等信息,以便于后续开发者维护代码。

'''
注释1
注释2
注释3
...
'''


"""
注释1
注释2
注释3
...
"""

中文声明注释

在Python中编写代码时,如果用到指定字符编码类型的中文编码(一般为utf-8),则需要在文件开头加上中文声明注释,这样可以在程序中指定字符编码类型的中文编码,不至于出现代码错误。

# -*- coding: utf-8 -*-

# coding: utf-8

# coding = utf-8

快捷注释

在python解释器中,如果需要将某一段代码注释掉不予执行,可以选中后按下Alt​+3​来实现,通过Alt​+4​来取消。 ​​

image.png

代码缩进

Python采用代码缩进和冒号“:”(英文符号)区分代码之间的层次。 缩进可以使用空格​或Tab​实现。使用空格​时,在通常情况下采用4个空格作为一个缩进量,而使用Tab​时,则采用一个Tab键作为一个缩进量。在通常情况下建议采用空格进行缩进。 在Python中,对于类定义、函数定义、流程控制语句,以及异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。此类情况下,如果“:”输入正确,按下Enter​一般会自动缩进。 也可以选中代码后使用快捷键Ctrl​+[​和Ctrl​+]​来实现缩进和取消缩进。 ​​

image.png

for i in range(10):
    print(i)         # 缩进开始
    ...
...                  # 缩进结束

编码规范:PEP 8

PEP是Python Enhancement Proposal的缩写,其中文含义是Python增强建议书,而“8”表示版本号。PEP 8是Python代码的样式指南。 使用特定的编辑器如pycharm等可自动识别不符合规范的代码,可根据需要和提示进行修改,此处仅做了解。且代码编写不符合PEP 8不一定影响代码运行,初学者可不遵守。 以下举例:

  1. 每个import语句只导入一个模块,尽量避免一次导入多个模块。

  2. 不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。

  3. 建议每行不超过80个字符,如果超过,则建议使用小括号“()”将多行内容隐式地连接起来,而不推荐使用反斜杠“\”进行连接。 ​​

image.png

以下两种情况除外:

  • 导入模块的语句过长。

  • 注释里的URL。

  1. 使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。

  2. 在通常情况下,运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔。

  3. 应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。

  4. 虽然适当使用异常处理结构可以提高程序容错性,但是不能过多依赖异常处理结构,适当的显式判断还是必要的。

命名规范

使用命名规范可以使人们更加直观地了解代码所代表的含义。

  1. 模块名尽量短小,并且全部使用小写字母,可以使用下画线分隔多个字母。

  2. 包名尽量短小,并且全部使用小写字母,不推荐使用下画线。

  3. 类名采用单词首字母大写形式(即Pascal风格)。

  4. 模块内部的类采用下画线“_”+Pascal风格的类名组成。

  5. 函数、类的属性和方法的命名规则同模块的命名规则类似,也是全部使用小写字母,多个字母之间使用下画线“_”分隔。

  6. 常量命名时采用全部大写字母,可以使用下画线。

  7. 使用单下画线“_”开头的模块变量或函数是受保护的,在使用from xxx import*语句从模块中导入时,这些模块变量或函数不能被导入。

  8. 使用双下画线“__”开头的实例变量或方法是类私有的。

保留字(关键字)

保留字是Python已经被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用,否则会提示“invalid syntax”的错误信息。 所有保留字是**区分字母大小写**的。 可以通过一下代码查询获得:

import keyword
print(keyword.kwlist)

image.png

标识符

标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。 命名规则如下:

  1. 由字母、下画线“_”和数字组成,并且第一个字符不能是数字

  2. 不能包含空格、@、%和$等特殊字符

  3. 区分字母大小写

  4. 以下画线开头的标识符有特殊意义,一般应避免使用相似的标识符。

  • 以单下画线开头的标识符(如_width)表示不能直接访问的类属性,也不能通过“from xxx import *”导入。

  • 以双下画线开头的标识符(如__add)表示类的私有成员。

  • 以双下画线开头和结尾的是Python专用的标识,例如,“init()”表示构造函数。

  1. 允许使用汉字作为标识符,但建议尽量不要使用汉字作为标识符。

image.png

image.png

变量

在Python中,变量严格意义上应该称为“名字”,也可以理解为标签,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。

就像取快递一样,内存就像一个巨大的货物架,在Python中定义变量就如同给快递盒子贴标签。快递存放在货物架上,上面附着写有取货码的标签。当客户来取快递时,并不需要知道它们存放在大型货架的具体位置。只需要客户提供取货码,快递员就会把快递交给客户。变量也一样,你不需要准确地知道信息存储在内存中的位置,只需要记住存储变量时所用的名字,再使用这个名字就可以了。

命名

变量的命名并不是任意的,应遵循以下几条规则:

  1. 变量名必须是一个有效的标识符,因此也应遵循标识符命名规则

  2. 不能使用Python中的保留字

  3. 慎用小写字母l和大写字母O(易与数字1和0混淆)

  4. 应选择有意义的单词作为变量名

赋值

为变量赋值可以通过等号(=)来实现,解释为“将某个值赋给某个变量或将某些值赋给某些变量”。Python是一种动态类型的语言,也就是说,变量的值和类型可以随时变化。

原理是先将某个值写入内存某个地址,然后使被赋值的变量名指向该地址,使用该变量时,将顺着地址取到该值。允许多个变量指向同一个值,此时每个变量都将指向同一内存地址。

  1. 一对一:变量名 = value

  2. 一对多:变量名 = value1, value2, value3, ...(多值被解释为一个元组)

  3. 多对多:变量名1, 变量名2, ... = value1, value2, ...(需一一对应,分别赋值)

  4. 多对一变量名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规范中规定了常量由大写字母和下画线组成,但是在实际项目中,常量首次赋值后,还是可以被其他代码修改的。

有少数的常量存在于内置命名空间中:

  1. False:布尔类型的假值,代表数字0

  2. True:布尔类型的真值,代表数字1

  3. None:NoneType 类型的唯一值,常用于表示缺少值(空值)

Comments