目录
1.python保留字
- and 用于表达式运算,逻辑与操作
- as 用于类型转换
- assert 断言,用于判断变量或条件表达式的值是否为真
- break 中断循环语句的执行
- class 用于定义类
- continue 继续执行下一次循环
- def 用于定义函数或方法
- del 删除变量或序列的值
- elif 条件语句,与if,else结合使用
- else 条件语句,与if,elif结合使用,也可用于异常和循环语句
- except except包含捕获异常后的操作代码块,与try,finally结合使用
- exec 用于执行python 语句
- for for循环语句
- finally try..except..finally..无论有否始终要执行finally
- from 用于导入模块,与import结合使用
- global 定义全局变量
- if 条件语句,与else,elif结合使用
- import 用于导入模块,与from结合使用
- in 判断变量是否在序列中
- is 判断变量是否为某个类的实例
- lambda 定义匿名变量
- not 用于表达式运算,逻辑非操作
- or 用于表达式运算,逻辑或操作
- pass 空的类,方法,函数的占位符
- print 打印语句
- raise 异常抛出操作
- return 用于从函数返回计算结果
- try try包含可能会出现异常的语句,与except,finally结合使用
- while while的循环语句
- with 上下文管理器
- yield 定义生成器
- nonlocal 非本地声明,声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量
- false 布尔保留字
2.保留字分类介绍
- 1.逻辑运算保留字:and(与操作), not(非操作), or(或操作)
- 2.对象引用增加保留字,相当于绑定别名: as
- # import 模块 as 别名(对象引用) # (try) except 异常 as 对象引用 # with ... as 对象引用
- 3.assert:断言语句保留字,通过异常进行程序辅助调试
- # assert 判断条件 # 如果条件为False,产生AssertiomError异常
- 4.循环控制保留字:break, continue
- # break:退出当前层循环 # continue:退出当次循环
- 5.类定义保留字:class
- # class 类名 # class 派生类名(基类名):
- 6.def:函数定义保留字
- # def 函数名(参数列表): # async def 函数名(参数列表):
- 7.条件判断保留字:if , elif, else
- 8.异常处理保留字:try, except, finally
- # try-except # try-except-else-finally
- 9.循环处理关键字:for, while
- # 遍历循环: for...in # 无限循环:while
- 10.模块导入关键字: from import
- # import 模块名 # from 模块名 import *
- 11.in : 成员关系操作保留字
- # 成员关系判断 ..in.. # 成员关系提取 for...in
- 12.is :对象判断保留字
- # 对象一致性判断,即比较id()函数结果 # 以内存对象为判断依据: x is y
- 13.lambda:匿名函数保留字
- # 定义匿名函数,产生函数对象 # lambda 参数列表:表达式
- 14.pass:空操作保留字,代表空操作,占位符
- 15.raise:异常产生保留字
- # 产生一个异常,辅助try-except程序功能 # raise 异常名称
- 16.return:函数返回保留字
- # 结束当前函数,返回0个或多个结果
- 17.with:上下文管理保留字
- # 构建并管理一个上下文区域 # with表达式as对象
- 18.生成器定义保留字:yield
- # 定义一个同步或异步(协程)生成器
- 19.删除保留字:del
- # 解除引用与对象的绑定关系,“删除”引用 # del 引用
- 20.全局声明保留字: global,全局变量声明,声明后可以赋值
- 21.nonlocal:非本地声明保留字,用来在函数或其他作用域中使用外层(非全局)变量。
- 22.布尔保留字:True, False
- 23.空无保留字:None
- 24.协程声明保留字:async
- # 声明一段协程程序 # async def 协程函数名(函数参数): # async with ...:
- 25.协程等待保留字: await
- # 等待一段协程程序执行并返回结果 # await 协程函数调用()
3.保留字使用语法介绍
(1)assert断言
- 断言函数是对表达式布尔值的判断,要求表达式计算值必须为真。
- 如果表达式为假,触发异常;如果表达式为真,不执行任何操作。
- 作用:检查某条件是否符合,不符合就触发异常,终止程序.可以等价raise-if-not
- 语法:assert 表达式 [, 参数]
_age = input("请输入您的年龄:")
age = int(s_age)
#判断age是否在20至80之间,是则执行一步,否则发出异常
assert 20 < age < 80
print("您输入的年龄在20和80之间")
(2)nonlocal声明内外层同名变量为相同变量
- 1)用于在内层函数中改变外层函数变量
a = 10 # a1 当前模块全局变量
def outer():
a = 9 # a2 outer局部变量
def inner():
nonlocal a
a = 8 # a既是inner局部变量,又是外层outer局部变量
print(a) # a3 8,在inner的局部作用域中找到了a3
inner() # inner()函数结束,a3作为外层变量(outer局部变量)被保留成为a2
print(a) # a2 8,在outer局部作用域中找到a2(在inner中被改变)
outer() # outer()函数结束,a2作为outer局部变量被释放
print(a) # a1 10,在当前模块全局作用域中找到了a1
结果:
8
8
10
- 2)如果在外层没有找到变量a,则会继续在再外层寻找,直到全局作用域的下一层为止
a = 10 # a1 当前模块全局变量
def outer2():
a = 9 # a2 outer2作用域局部变量
print(a) # a2 9,还未被a3改变
def outer1():
print(a) # a2 9,在outer1中没找到局部变量a,则寻找外层(outer2)变量a2(还未被a3改变)
def inner():
nonlocal a
a = 0 # a3 既是inner局部变量,又是再外层outer2作用域变量
print(a) # a3 0, 找到inner局部变量a3
inner() # inner()函数结束,a3作为外层变量(outer2局部变量)被保留成为a2
print(a) # a2 0,在outer1中没找到局部变量a,则寻找外层(outer2)变量a2(被a3改变)
outer1()
print(a) # a2 0, 在outer1中找到outer1局部变量a2(被a3改变)
outer2()
print(a) # a1 10,在当前模块全局作用域中找到了a1
结果:
9
9
0
0
0
10
- 3)全局变量不是外层变量,不被nonlocal寻找
a = 10 #a为全局变量
def outer():
def inner():
nonlocal a #在当前作用域外层即outer局部作用域中没找到outer局部变量a,outer外层为全局作用域,nonlocal不继续寻找,报错
a = 8
print(a)
inner()
print(a)
outer()
print(a) # a1 10,在当前模块全局作用域中找到了a1
结果:
SyntaxError: no binding for nonlocal 'a' found