选择结构通过判断某些特定条件是否满足来决定下一步的执行流程,是非常重要的控制结构。常见的有单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,形式比较灵活多变,具体使用哪一种最终还是取决于要实现的业务逻辑。循环结构和异常处理结构中也可以带有else子句,也可以看作是特殊形式的选择结构。
1 单分支选择结构
单分支选择结构是最简单的一种形式,其语法如下所示,其中表达式后面的冒号“:”是不可缺少的,表示一个语句块的开始,后面几种其他形式的选择结构和循环结构中的冒号也是必须要有的。
if 表达式:
语句块
当表达式值为True或其他等价值时,表示条件满足,语句块将被执行,否则该语句块将不被执行,继续执行后面的代码(如果有)。
1 >>> x = input(‘Input two numbers:‘) 2 Input two numbers: 3 4 3 >>> 4 >>> a,b = map(int,x.split()) 5 >>> 6 >>> a 7 3 8 >>> b 9 4 10 >>> 11 >>> if b > a: 12 a,b = b,a #序列解包,交换两个变量的值 13 14 15 >>> print(a,b) 16 4 3 17 >>>
注意:在Python中,代码的缩进非常重要,缩进是体现代码逻辑关系的重要方式,同一个代码块必须保证相同的缩进量。养成习惯,严格遵循这个要求吧。
2 双分支选择结构
双分支选择结构的语法为:
if 表达式:
语句块 1
else:
语句块 2
当表达式值为True或其他等价值时,执行语句块 1 ,否则执行语句块 2。代码示例如下:
1 l = [ ‘1‘,‘2‘,‘3‘,‘4‘,‘5‘ ] 2 3 if l: 4 print(l) 5 else: 6 print(‘Empty‘) 7 8 9 # 执行结果:[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘]
拓展知识:Python还提供了一个三元运算符,可以实现与选择结构相似的效果。语法为:
value1 if condition else value2
当条件表达式condition的值与True等价时,表达式的值为 value1,否则表达式的值为 value2。另外,value1 和 value2本身也可以是复杂表达式,也可以包含函数调用。下面的代码演示了上面的表达式的用法,可以看出,这个结构的表达式也具有惰性求值的特点。
1 >>> a = 5 2 >>> print(6) if a > 3 else print(5) 3 6 4 >>> 5 >>> print(6 if a > 3 else 5) #注意,虽然结果与上一行代码一样,但代码含义不同 6 6 7 >>> 8 >>> b = 6 if a > 13 else 9 #赋值运算符优先级低 9 >>> b 10 9 11 >>> 12 >>> 13 >>> import math 14 >>> x = math.sqrt(9) if 5 > 3 else random.randint(1,100) 15 >>> x 16 3.0 17 >>> 18 >>> #三目运算符就这样简单地用用就好了,,
3 多分支选择结构
多分支选择结构为用户提供了更多的选择,可以实现复杂的业务逻辑,多分支选择结构的语法为:
if 表达式 1:
语句块 1
elif 表达式 2:
语句块 2
elif 表达式 3:
语句块3
...
else:
语句块 n
其中,关键字 elif 是 else if的缩写。下面的代码演示了如何利用多分支选择结构将成绩从百分制转换到等级制。
不好意思啊各位,,这篇文章没写完就发出去了,,,中午或晚上把这篇文章补全。。