注:基于天池python训练营和学习过程中的一些补充知识
条件语句
-
if 语句
If语句仅处理条件成立的情况,当表达式为真时,执行相应的语句块(一条或多条语句);当表达式为假时,直接跳出if语句,执行其后面的语句。
语法格式为:
输入两个数,进行排序。
-
if - else 语句
如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。
-
if - elif - else 语句
If-elif-else语句主要用于处理多种条件的情况,从而解决现实生活中复杂的多重选择问题,如果表达式1的值为真,则执行相应的程序段1;如果表达式1的值为假,则继续判断表达式2的值,如果表达式2的为真,则执行程序段2,如果表达式2的值为假,则继续判断表达式3的值……最后执行else后面的程序段。
例如:将百分制转换为五级记分制。
-
assert 关键词
Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况。my_list = ['lsgogroup'] my_list.pop(0) # 删除列表元素 assert len(my_list) > 0 # 条件为假,触发AssertionError异常
循环语句
-
while 循环
while语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句。while 布尔表达式: 代码块
while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。
如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。
例如:求10!
-
while - else 循环
while 布尔表达式: 代码块 else: 代码块
当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
-
for 循环
for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。for 迭代变量 in 可迭代对象: 代码块
每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。 -
for - else 循环
for 迭代变量 in 可迭代对象: 代码块 else: 代码块
当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样。
-
range() 函数
range([start,] stop[, step=1])
- 这个BIF(Built-in functions,内置函数)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
- step=1 表示第三个参数的默认值是1。
- range 这个BIF(内置函数)的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
-
enumerate()函数
enumerate(sequence, [start=0])
sequence:一个序列、迭代器或其他支持迭代对象。
start:下标起始位置。
返回 enumerate(枚举) 对象seasons = ['Spring', 'Summer', 'Fall', 'Winter'] lst = list(enumerate(seasons)) print(lst) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
-
break、continue语句
break语句可以跳出当前所在层的循环。
continue终止本轮循环并开始下一轮循环。for l in 'python': if l =='h': break print(l,end=',') #输出p,y,t
for i in range(4): if i == 2: continue print(i)
-
pass 语句
pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。def a_func(): pass
pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。
-
推导式
列表推导式[ expr for value in collection [if condition] ]
元组、字典、集合推导式类似
x = [-4, -2, 0, 2, 4] y = [a * 2 for a in x] print(y) # [-8, -4, 0, 4, 8]
异常处理
-
Python 标准异常总结
-
try - except 语句
try: 检测范围 except Exception[as reason]: 出现异常后的处理代码
try 语句按照如下方式工作:
- 首先,执行try子句(在关键字try和关键字except之间的语句)
- 如果没有异常发生,忽略except子句,try子句执行后结束。
- 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try - except语句之后的代码。
- 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
一个try语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。try: f = open('test.txt') print(f.read()) f.close() except OSError: print('打开文件出错') # 打开文件出错
-
try - except - finally 语句
try: 检测范围 except Exception[as reason]: 出现异常后的处理代码 finally: 无论如何都会被执行的代码,不管try子句里面有没有发生异常,finally子句都会执行。 -
try - except - else 语句
try: 检测范围 except: 出现异常后的处理代码 else: 如果没有异常执行这块代码
如果在try子句执行时没有发生异常,Python将执行else语句后的语句。
注意:else语句的存在必须以except语句的存在为前提,在没有except语句的try语句中使用else语句,会引发语法错误。