Python3 条件控制
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
条件控制通过判断条件是否成立,来决定执行哪个分支。其有多种形式,分为:单分支、双分支、多分支。
单分支选择结构
'''
if 条件表达式:
语句/语句块
解释:
1.条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
2.语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
'''
# 【案例】输入一个整数,如果该数大于100,则打印这个数字 num = int(input('请输入一个整数:')) if num > 100: print(num)
''' ⚠️条件表达式中,不能有赋值操作符 = 在Python中,条件表达式不能出现赋值操作符 = ,避免了其他语言中经常误将关系运算符 == 写作赋值运算符 = 带来的困扰。 如下代码将会报语法错误: ''' n = 5 if 3 < n and (n=20): # 直接报语法错误! print("赋值符不能出现在条件表达式中")
双分支选择结构
''' 双分支结构的语法格式如下: if 条件表达式: 语句1/语句块1 else: 语句2/语句块2 '''
# 【案例】输入你的年龄,如果小于18岁则打印'不能去网吧',否则打印'可以去网吧' age = int(input('请输入你的年龄:')) if age < 18: print('未成年人禁止去网吧!') else: print('你已成年,可以去网吧!')
# 上面的案例也可以用三元运算符来表示 age = int(input('请输入你的年龄:')) print('未成年人禁止去网吧!' if age < 18 else '你已成年,可以去网吧!') ''' Python的三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下: 条件为真时的值 if 条件表达式 else 条件为假时的值 '''
多分支选择结构
多分支选择结构的语法格式如下:
if 条件表达式1 :
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
...
elif 条件表达式n :
语句n/语句块n
[else:
语句n+1/语句块n+1
]
注意:
1.多分支结构中的else可写可不写
2.多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序
# 猜数字游戏 target_num = 8 num = int(input('请输入一个10以内的整数:')) if num == target_num: print('恭喜你猜对了!') elif num > target_num: print('猜大了!') # elif num < target_num: # print('猜小了!') else: print('猜小了!')
# 【案例】输入你的成绩,90分以上则为A,80-89为B,60-79为C,60以下为D score = int(input('请输入你的成绩:')) if score >= 90: print('A') elif score >=80: print('B') elif score >=60: print('C') else: print('D')
match...case
Python 3.10 增加了 match...case 的条件判断,不需要再使用一连串的 if-else 来判断了。
match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
语法格式如下:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
status = '学习' match status: case '学习': print('好好学习,天天向上!') case '打游戏': print('别浪费时间了,快去学习!') case '睡觉': print('你怎么睡的着的!') case _: # # case _: 当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。 print('状态错误,无法识别!')
选择结构嵌套
选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系。
# 【案例】 age = int(input('请输入你的年龄:')) if age < 18: print('未成年人禁止去网吧!') if age < 10: print('小屁孩,先把汉字认全再说吧!') else: print('你已成年,可以去网吧!')
下表列出了不同数值类型的 true 和 false 情况: