if语法
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
Python
if 判断条件:
语句1……
else:
语句2……
语句1就是if判断条件成立所执行的语句
那么判断条件不成立,就执行else下的语句2
在python中,使用缩进来表示层级关系
Python
if 5>2:
print("条件成立","执行语句1")
else:
print('条件不成立',"执行语句2")
# 条件成立 执行语句1
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
Python
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
如下例:
Python
# 根据分数判断等级
score = int(input("请输入你的成绩:"))
if score >=60 and score <80:
print("成绩及格")
elif score>=80 and score <90:
print("成绩良好")
elif score>=90 and score <=100:
print("成绩优秀")
else:
print("成绩不及格")
# 输入 50 输出成绩不及格
# 输入 88 输出成绩良好
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以
- 使用 or (或),表示两个条件有一个成立时判断条件成功
- 使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行
此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断
你也可以在同一行的位置上使用if条件判断语句和输出语句,如下:
Python
# 根据分数判断等级
score = int(input("请输入你的成绩:"))
if score >=60 and score <80: print("成绩及格")
elif score>=80 and score <90: print("成绩良好")
elif score>=90 and score <=100: print("成绩优秀")
else: print("成绩不及格")
# 输入 50 输出成绩不及格
# 输入 88 输出成绩良好
if嵌套
Python 中,if、if else 和 if elif else 之间可以相互嵌套。因此,在开发程序时,需要根据场景需要,选择合适的嵌套方案。需要注意的是,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。
例如,在最简单的 if 语句中嵌套 if else 语句,形式如下:
Python
if 表达式 1:
if 表示式 2:
代码块 1
else:
代码块 2
又或者,在 if else 语句中嵌套 if else 语句,形式如下:
Python
if 表示式 1:
if 表达式 2:
代码块 1
else:
代码块 2
else:
if 表达式 3:
代码块 3
else:
代码块 4
【实例】判断是否为酒后驾车
如果规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。先编写 Python 程序判断是否为酒后驾车。

于是我们使用if嵌套来实现这个需求:
Python
proof = int(input("输入驾驶员每 100ml 血液酒精的含量:"))
if proof < 20:
print("驾驶员不构成酒驾")
else:
if proof < 80:
print("驾驶员已构成酒驾")
else:
print("驾驶员已构成醉驾")
又或者使用if嵌套改进我们的得分评判系统:
Python
score = int(input("请输入你的成绩:"))
if score >= 60:
if score>=80:
if score>=90:
print("成绩优秀")
else:
print("成绩良好")
else:
print("成绩及格")
else:
print("成绩不及格")
# 这次我们实现的是三重嵌套
三目运算
Python 可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种 if 语句当成三目运算符。作为三目运算符的 if 语句的语法格式如下:
Python
True_code if decide else False_code
三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回 False_statements 的值
Python
条件成立执行语句1 if 条件 else 条件不成立执行语句2
看如下代码:
Python
a = 5
b = 3
st = "a大于b" if a > b else "a不大于b"
# 输出"a大于b"
print(st)
如果只是需要在控制台看到结果,那我们可以这样写:
Python
a,b=3,5
print(f"{a}>{b}") if a>b else print(f"{a}<{b}")
# 3<5
又或者是使用一个print语句
Python
a,b=5,3
print(f"{a}>{b}" if a>b else f"{a}<{b}")
实例:使用三目运算符实现判断两个数字大小(实现if else 语句的效果)
Python
x=int(input('请输入第一个数字'))
y=int(input('请输入第二个数字'))
if x>y:
print(f'{x}大于{y}')
else:
print(f'{x}小于{y}')
Python
# 条件成立那里放前面,else语句下面就放后面
x=int(input('请输入第一个数字'))
y=int(input('请输入第二个数字'))
print(f'{x}大于{y}' if x>y else f'{x}小于{y}')
我们同样可以使用如if嵌套的方法进行三目运算符嵌套,这样可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:
Python
a if a>b else c if c>d else d
# 理解为
a if a>b else ( c if c>d else d )
# 可以使用小括号
这是使用if else 在三个数字中输出最小的数
Python
a, b, c = -1, -5, 1
if a < b and a < c:
print(a)
elif b < c and b < a:
print(b)
else:
print(c)
如何用三目运算符进行实现?课后作业!
Python
a, b, c = -1, 2, 1
print(a if a < b and a < c else b if b < c and b < a else c)