对于if语句,若条件判定为真,那么后面的语句块就会被执行。若条件判定为假,语句块就会被跳过,不会执行。
1 #if语句
2 age = 20
3 if age >= 18:
4 print('your age is', age)
5 print('adult')
else子句只是增加一种选择(之所以叫做子句是因为它不是独立的语句,而是if的一部分)。if...else...搭配,若if语句为False,不执行if下的语句块,而去else下的语句块。
1 #if...else...语句
2 age = 3
3 if age >= 18:
4 print('your age is', age)
5 print('adult')
6 else:
7 print('your age is', age)
8 print('teenager')
如果需要检查多个条件,就可以使用elif,它是else if的简写,也是if和else语句的联合使用,即使用elif做更细致的判断:
1 #if...elif...elif...else...语句
2 age = 3
3 if age >= 18:
4 print('adult')
5 elif age >= 6:
6 print('teenager')
7 else:
8 print('kid')
if < 条件判断1 >:
< 执行1 >
elif < 条件判断2 >:
< 执行2 >
elif < 条件判断3 >:
< 执行3 >
else:
< 执行4 >
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else语句
,所以,请测试并解释为什么下面的程序打印的是teenager:
1 #条件语句执行特点:从上往下判断
2 age = 20
3 if age >= 6:
4 print('teenager')
5 elif age >= 18:
6 print('adult')
7 else:
8 print('kid')
最后看一个有问题的条件判断。很多同学会用input()
读取用户的输入,这样可以自己输入,程序运行得更有意思,更有人性化。其实啊,Error往往出现在意想不到的地方。不信,来看段代码:
#if语句中使用input()方法
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')
输入1993,结果报错:
Traceback (most recent call last):
File "< stdin >", line 1, in < module >
TypeError: unorderable types: str() > int()
为什么呢?我在刚接触Python时,用到此处报错也是百思不得其解,同样纠结了好久。直到后来,我才慢慢懂了。
这是因为input()
返回的数据类型是str
,str
不能直接和整数比较,必须先把str
转换成整数。Python提供了int()
函数来完成这件事情。
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
因此,在编程中,条件判断是非常重要的。条件判断可以让计算机自己做选择,Python的if...elif...else很灵活。条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行。
全部0条评论
快来发表一下你的评论吧 !