Python 条件控制是通过一条或多条语句的执行结果是 True 还是 False 来决定执行的代码块。
下面是个最简单的流程图:
if 如果条件为真则执行语句块1,否则执行语句块2
单独 if 判断,都条件为 True 值执行语句块,否则跳过。
if 语句格式如下:
if <条件>: 【语句块】
释:条件为真时执行【语句块】,否则跳过
注意: 条件为 0 和 None 相当于 False。
示例:
# 根据年龄age判断,如果为成年人列印 「age 岁是成年人」 age = 18 if age >= 18: # 判断条件 注意条件后的【:】号 print(18, 岁是成年人) print(执行了if的语句块) print(执行结束)
注意:Python 代码的缩进规则。具有相同缩进的代码被视为同一代码块,上面的4,5行 print 语句就构成一个代码块( 但不包括第6行的 print 语句)。如果 age大于等于18,就会执行 4 和 5 行代码块。缩进要严格按照 Python 的习惯写法:4个空格,或者使用 Tab,不要混合 Tab 和空格,否则很容易造成因为缩进而引起的语法错误。
注意:Python 代码的缩进规则。具有相同缩进的代码被视为同一代码块,上面的4,5行 print 语句就构成一个代码块( 但不包括第6行的 print 语句)。如果 age大于等于18,就会执行 4 和 5 行代码块。
if...else... 语句,当 if 的条件为 True 时执行 if 下的语句块,否则执行 else 下语句块。
if...else... 语句格式如下:
if <条件>: 【if 的语句块】 else: 【else 的语句块】
释:条件为 True 时执行【if的语句块】,否则执行【else的语句块】
"""根据年龄age判断,如果为成年人列印age岁是成年人,否则列印age不是成年人""" age = 18 if age >= 18: # 判断条件 print(18, 岁是成年人) print(执行了if语句块) else: print(18, 岁不是成年人) print(执行了else语句块)
当 age 大于等于 18 时执行 if 下的语句,age 小于 18 时执行 else 下的语句
if...elif...else 多个条件筛选,从 if 的第一个条件开始依次判断,找到条件为 True 的执行它下面的语句块,如果找不到则执行 else 语句块。
if <条件1>: 【if 的语句块1】 elif <条件2>: 【elif 的语句块2】 elif <条件3>: 【elif 的语句块3】 else: 【else 的语句块】
注意:新手都会犯的错误,条件1为真,执行if的语句块1,如果条件2也为真,不会执行【 elif 的语句块2】语句。
"""根据年龄age判断,是老人,中年人,青年,儿童,婴儿""" age = 30 if age >= 60: print(age, 岁是老人) print(执行if的语句块1) elif age >= 40: print(age, 岁是中年人) print(执行elif的语句块2) elif age >= 18: print(age, 岁是中青年) print(执行elif的语句块3) elif age >= 3: print(age, 岁是儿童) print(执行elif的语句块4) else: print(age, 岁是婴儿) print(执行else的语句块)
拓展:你可以尝试将 age >= 3条件放最前,看看输出结果
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
释:条件1为 True,进入语句块1,对第二个if语句进行判断执行第二个if语句。
d = {name: woodman, age: 32, sex: 男} if d[age] < 30: if d[sex] == 男: print(d[name], 是一位年轻的大帅哥) elif d[sex] == 女: print(d[name], 是一位年轻的大美女) else: if d[sex] == 男: print(d[name], 是一位快老了的大帅哥) elif d[sex] == 女: print(d[name], 是一位快老了的大美女)
总结:if 语句不管是嵌套还是单个的if ,重点在条件的先后判断; if ...elif ... else ... 是整体的判断链条, 同一 if ...elif ... else ... 链条,如果遇到条件为 True ,则后面的 elif 或 else 将不会执行。