python中的注释、标识符、关键字
python中的注释说明
学习注释之前,需要先说明一下注释的作用,注释是不会被 Python 解释器执行,用于给人阅读,说明代码功能、思路、注意事项。
注释的作用:
-
方便自己看懂代码:写完代码隔一段时间再回看,很容易忘记当时的思路,注释用来记录逻辑、想法,快速理解代码含义。
-
方便他人阅读代码(团队协作):多人一起开发项目时,同事不需要逐行推敲代码,通过注释就能明白模块、函数的功能,降低沟通成本。
-
解释复杂逻辑:对于难懂的算法、特殊业务规则、特殊参数取值,用注释说明为什么这么写(重点!不要重复描述代码做了什么)。
-
调试代码:临时屏蔽代码:开发测试时,可以把暂时不需要运行的代码注释掉,不用直接删除,后续需要可以直接恢复。
python中的注释分类
python中的注释分为几类:
单行注释
语法:# 注释内容
可以单独一行,也可以写在代码右侧
# 这是一行注释
print(3) # 这也是一行注释
多行注释
Python 没有专门的多行注释符号,行业通用两种写法:
- 三单引号 ''' '''
- 三双引号 """ """ (现在常用的,记住这个就好了)
"""
这是多行文本,常用来充当多行注释
可以写很多行
适合文件开头、函数说明
"""
'''
这也是多行注释
'''
注意:
三引号是字符串字面量
不赋值给变量、不在表达式中,解释器读取后直接丢弃,效果像注释
如果放在函数或者类开头,叫做文档字符串 (docstring),可以用 help() 提取!
示例:
def add(a, b):
"""
实现两个数字相加
:param a: 数字1
:param b: 数字2
:return: a + b
"""
return a + b
if __name__ == '__main__':
help(add) # 能够打印出三引号内的说明
# 打印出内容如下
add(a, b)
实现两个数字相加
:param a: 数字1
:param b: 数字2
:return: a + b
python注释规范
- 行内注释:代码和 # 之间至少空两个空格
x = 10 # 正确,前面两个空格
y = 20 # 不规范,空格太少
- 独立单行注释,注释内容和#之间保持一个空格
# 正确:空格紧跟#
#错误:没有空格
- 注释语言清晰,不要复述代码已经显而易见的逻辑
age = 18 # 年龄等于18 ❌ 无意义注释
age = 18 # 法定成年年龄 ✅ 提供额外信息
python中的标识符
标识符就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
构成标识符的字符均遵循一定的命名规则:
- 区分大小写:Myname与myname是两个不同的标识符。
- 首字符可以是下画线(_)或字母,但不能是数字。
- 除首字符外的其他字符必须是下画线、字母和数字。
- 关键字不能作为标识符。
- 不要使用Python的内置函数作为自己的标识符。
✅合法示例:
age
user_name
_num1
StudentInfo
❌非法示例:
1name # 数字开头
user-name # 包含减号
user name # 包含空格
if # 关键字
python中常用的变量命名规范
PEP8 规范,推荐遵守,不遵守不会报错
- 普通变量、函数:蛇形命名法(snake_case)
user_name
student_age
get_user_info()
- 类名:大驼峰命名规则
# 每个单词首字母大写,不需要下划线
StudentInfo
OrderService
- 常量:全大写 + 下划线
MAX_COUNT = 100
DEFAULT_TIMEOUT = 30
- 下划线特殊含义约定
- _name:单下划线开头,约定为私有变量,外部尽量不要直接访问
- name_:单下划线结尾,用来避免和关键字重名(class_)
- __name:双下划线开头,触发名称改写(name mangling)
- name:前后双下划线,魔法属性 / 魔法方法,系统内置,不要自己创建
python中的关键字
关键字也可以理解成标识符,只不过这个标识符比较特殊,已经Python 语言内部已经占用且拥有特殊功能。
我们不能使用这一类的关键字作为变量名、函数名、类名,否则直接语法报错。
可以通过python代码来查看当前的python版本的所有关键字
# 导入包
import keyword
# 查看所有的关键字列表
print(keyword.kwlist)
# 判断当前标识符是否为关键字
print(keyword.iskeyword("if"))
python的所有关键字列表
| 关键字 | 简要作用 |
|---|---|
| False | 布尔假常量 |
| None | 空值,表示不存在 |
| True | 布尔真常量 |
| and | 逻辑与运算 |
| as | 导入别名、异常别名 |
| assert | 断言,调试校验条件 |
| async | 定义异步函数 |
| await | 等待异步任务执行 |
| break | 跳出当前循环 |
| class | 定义类 |
| continue | 结束本次循环,进入下一轮 |
| def | 定义普通函数 |
| del | 删除对象、变量、元素 |
| elif | 多分支条件(否则如果) |
| else | 条件/循环/异常分支:否则 |
| except | 捕获异常 |
| finally | 异常处理,无论是否报错都会执行 |
| for | 遍历循环 |
| from | 从模块导入指定内容 |
| global | 声明使用全局变量 |
| if | 条件判断 |
| import | 导入模块 |
| in | 成员判断,配合for循环遍历 |
| is | 判断两个对象是否为同一个 |
| lambda | 创建匿名函数 |
| nonlocal | 声明外层嵌套函数变量 |
| not | 逻辑非运算 |
| or | 逻辑或运算 |
| pass | 空占位语句,无任何操作 |
| raise | 主动抛出异常 |
| return | 函数返回结果 |
| try | 开启异常捕获代码块 |
| while | while条件循环 |
| with | 上下文管理器,自动释放资源 |
| yield | 生成器,产出迭代值 |
本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/22309152,微信Vac6666666,欢迎交流

浙公网安备 33010602011771号