3.1 选择结构
3.1.1 条件表达式
§在选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。
§从这个意义上来讲,几乎所有的Python合法表达式都可以作为条件表达式,包括含有函数调用的表达式。
例如:
>>> if 3: #使用整数作为条件表达式
print(5)
5
>>> a = [1, 2, 3]
>>> if a: #使用列表作为条件表达式
print(a)
[1, 2, 3]
>>> a = []
>>> if a:
print(a)
else:
print('empty')
empty
>>> i = s = 0
>>> while i <= 10: #使用关系表达式作为条件表达式
s += i
i += 1
>>> print(s)
55
>>> i = s = 0
>>> while True: #使用常量True作为条件表达式
s += i
i += 1
if i > 10:
break
>>> print(s)
55
>>> s = 0
>>> for i in range(0, 11, 1): #遍历迭代对象中的所有元素
s += i
>>> print(s)
55
3.1.2 选择结构的几种形式
单分支选择结构
基本语法:
if 表达式:
语句块
程序流程图
示例如下:
x = input('Input two number:')
a, b = map(int, x.split())
if a > b:
a, b = b, a #序列解包,交换两个变量的值
print(a, b)
注意:在Python中,代码的缩进非常重要,缩进是体现代码逻辑关系的重要方法,同一个代码块必须保证相同的缩进量 。
双分支选择结构
基本语法:
if 表达式:
语句块 1
else:
语句块2
程序流程图:
示例如下:
>>> x =1
>>>y =2
if x>y:
print(x)
else:
print(y)
2
三元运算符
基本语法:
value1 if condition else value2
示例如下:
>>> a = 5
>>> print(6) if a>3 else print(5)
6
>>> print(6 if a>3 else 5)
6
>>> b = 6 if a>13 else 9
>>> b
9
多分支结构
基本语法:
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
else:
语句块4
其中,关键字elif是else if的缩写
示例如下:
利用多分支选择结构将成绩从百分制变换到等级制
def func(score):
if score > 100:
return 'wrong score.must <= 100.'
elif score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 60:
return 'D'
elif score >= 0:
return 'E'
else:
return 'wrong score.must >0'
3.1.3 选择结构的嵌套
基本语法:
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4
注意:缩进必须要正确并且一致。如图:
示例如下:
使用嵌套的选择结构实现百分制成绩到等级制的转换
>>> def func(score):
degree = 'DCBAAE'
if score > 100 or score < 0:
return 'wrong score.must between 0 and 100.'
else:
index = (score - 60)//10
if index >= 0:
return degree[index]
else:
return degree[-1]
PS:
本篇主要参考董付国老师的《Python可以这样学》一书,这是一本不错的Python入门书籍,有兴趣的可以买本看看,当然,也可以持续关注我的博客,我会一直更新相关内容的。