第七周Python课堂笔记
一:条件表达式
逻辑运算符and和or以及关系运算符具有惰性求值特点,只计算必须计算的表达式。
以“and”为例,对于表达式“表达式1 and 表达式2”而言,如果“表达式1”的值为“False”或其他等价值时,不论“表达式2”的值是什么,整个表达式的值都是“False”,此时“表达式2”的值无论是什么都不影响整个表达式的值,因此将不会被计算,从而减少不必要的计算和判断。
1.单分支
if 表达式:
语句块
x = input(‘Input two number:’)
a, b = map(int, x.split())
if a > b:
a, b = b, a #序列解包,交换两个变量的值
print(a, b)
2.双分支
if 表达式:
语句块1
else:
语句块2
chTest = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
if chTest:
print(chTest)
else:
print(‘Empty’)
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
Python还支持如下形式的表达式:三元运算符
value1 if condition else value2
当条件表达式condition的值与True等价时,表达式的值为value1,否则表达式的值为value2。在value1和value2中还可以使用复杂表达式,包括函数调用和基本输出语句。这个结构的表达式也具有惰性求值的特点。
a = 5
print(6) if a>3 else print(5)
6print(6 if a>3 else 5)
6b = 6 if a>13 else 9
b
9
3.多分支
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
else:
语句块4
4.选择结构嵌套
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4
使用列表、元组或字典可以很容易构建跳转表,在某些场合下可以更快速地实现类似于多分支选择结构的功能。
二:循环结构
Python提供了两种基本的循环结构语句——while和for。
while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。
for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素。
一般优先考虑使用for循环。
相同或不同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。
for循环和while循环都可以带else。
while 条件表达式:
循环体
[else: # 如果循环是因为break结束的,就不执行else中的代码
else子句代码块]
for 取值 in 序列或迭代对象:
循环体
[else:
else子句代码块]
在循环中应尽量引用局部变量,因为局部变量的查询和访问速度比全局变量略块。另外,在使用模块中的方法时,可以通过将其直接导入来减少查询次数和提高运行速度。
break语句在while循环和for循环中都可以使用,一般与选择结构结合使用,一旦break语句被执行,将使得整个循环提前结束。
continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。