第三章的学习已经拉开帷幕,这一章我们又要见到管鲍之交的朋友:选择结构和循环结构。在之前学过的诸门语言中,我们都能看到它们的身影,因为它们在编程过程中显得十分重要。那么在Python这门语言中,它们与以往又有什么相似或者不同的地方呢?让我们来寻找答案。
3.1 条件表达式
条件表达式是一条对语句逻辑进行判断的表达式,往往使用and和or逻辑运算符来实现。它们和关系运算符都具有惰性求值特点,只计算必须计算的表达式。
以“and”为例,对于表达式“表达式1 and 表达式2”而言,如果“表达式1”的值为“False”或其他等价值时,不论“表达式2”的值是什么,整个表达式的值都是“False”,此时“表达式2”的值无论是什么都不影响整个表达式的值,因此将不会被计算,从而减少不必要的计算和判断。
程序设计还有一个力求达到的目标就是程序的高效性。在设计条件表达式时,如果能够大概预测不同条件失败的概率,并将多个条件根据“and”和“or”运算的短路求值特性来组织先后顺序,可以大幅度提高程序运行效率。如以下代码所示:
>>> def Join(chList, sep=None):
return (sep or ',').join(chList)
>>> chTest = ['1', '2', '3', '4', '5']
>>> Join(chTest)
'1,2,3,4,5'
>>> Join(chTest, ':')
'1:2:3:4:5'
>>> Join(chTest, ' ')
'1 2 3 4 5'
由上可以看出,当sep有一个输入值时,便不再输出or后面的“,”。
3.2.1 单分支选择结构
单分支选择结构的具体表达式为:
if 表达式:
语句块
即如果满足if条件,执行if表达式里面的语句块,我们用一段简单的代码来说明这个结构:
x = input('输入两个数字:')
a, b = map(int, x.split())
if a > b:
a, b = b, a #序列解包,交换两个变量的值
print(a, b)
3.2.2 双分支选择结构
双分支选择结构的具体表达式为:
if 表达式:
语句块1
else:
语句块2
即如果满足if条件,执行if表达式里面的语句块,否则执行else表达式里面的语句块,同样给出一个例子:
>>> chTest =