在编程时,我们经常会遇到这样一个问题,当满足某一条件时,给出相对应的措施。在python中,我们可以使用if语句用来判断所给定的条件是否满足,根据判定的结果来执行相应的代码块。
if语句的使用这里会讲到单分支判断语句,双分支判断语句,多分支判断语句,if的嵌套使用以及if的三目运算。
单分支判断语句
if 判断条件:
语句块
首先执行判断条件,当判断条件成立会执行语句块,若条件不成立,则不执行。
案例:网吧禁止未满18岁未成年人进入,输入用户年龄,如果小于18,则打印“未成年人禁止进入”
age = int(input("请输入您的年龄:"))
if age < 18:
print("禁止进入!")
if语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示关系。
if判断语句还可以简写:
if x:
print("True")
只要x是非零数值,非空字符串,非空list,就判断为True,否则为False
a = [1,2,3]
if a:
print("True")
双分支判断语
if 判断条件:
语句块1
else:
语句块2
首先执行判断条件,当判断条件成立会执行语句块1,若条件不成立,则执行语句块2。
案例:如果年龄小于18,则打印“未成年人禁止进入”,否则打印“欢迎光临!”
age = int(input("请输入您的年龄:"))
if age >= 18:
print("欢迎光临!")
else:
print("禁止进入!")
多分支判断语句
案例:如果年龄小于等于18,打印少年,年龄大于18且小于等于25,则打印青年,大于25小于等于40,打印壮年,大于40,打印您更年期到了。
类似于上面我们需要多重判断的时候,我们则可以使用以下的方式来解决
if 判断条件1:
语句块1
elif 判断条件2:
语句块2
...
elif 判断条件n:
语句块n
else:
语句块
首先执行判断条件1,若条件1成立则执行语句块1,语句块1执行完毕则跳出分支语句;若条件1不成立,则执行判断条件2,若条件2成立,则执行语句块2;若条件2不成立,则继续往下执行直到判断条件成立为止,若判断条件都不成立,则执行else下面的语句块。
注意:elif是else if的缩写,可以有多个elif
案例的具体实现如下:
age = int(input("请输入您的年龄:"))
if age <= 18:
print("少年")
elif age <= 25:
print("青年")
elif age <= 40:
print("壮年")
else:
print("更年期到啦")
if语句有个特点,它是从上往下判断,如果在某个判断上是True,把该判断的语句对应执行后,就忽略掉其他的elif和else。
if的嵌套使用
案例:现输入一个数,判断他是否为大于10的偶数
如果要解决上述的需求,我们需要两个判断语句,第一个判断输入的数是否大于10,第二个判断是在第一个的基础上来判定这个数是否为偶数。
简单的说,就是在if语句中再嵌套一个if语句,效果如下:
if 判断条件1:
if 判断条件2:
语句块2-1
else:
语句块2-2
else:
语句块1-2
执行过程:首先执行判断条件1,条件1成立,则执行判断条件2,若条件2成立,则执行语句块2-1,否则执行语句块2-2;条件1不成立则执行语句块1-2
注意:else与if的配套与缩进有关,if下面的的else是对齐的。
num = int(input("请输入一个整数:"))
if num > 10:
if num % 2 == 0:
print("输入的数是一个大于10的偶数")
注意:从语法的角度上说,嵌套的层数没有限制,但是,从代码的可读性和可维护性来说,最好的嵌套的层数不要超过三层。
当然如果多个条件需同时判断时,也可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
案例还可以使用下面的代码实现:
num = int(input("请输入一个整数:"))
if num > 10 and num%2 == 0:
print("输入的数是一个大于10的偶数")
else:
print("输入的数不是一个大于10的偶数")
三目运算
语法:
result1 if 判断条件 else result2
若条件成立则执行result1,否则执行result2。result可以是变量,也可以是常量也可以是表达式。
本质:将if语句强制性的写在一行,完成一个二选一的效果。
案例:判断某个数是否为偶数
number = int(input("请输入一个整数"))
res = True if number%2 == 0 else False
print(res)