age = 20
if age >= 18:
print('your age is', age)
else:
print('teenager')
如果if
语句判断是True
,就把缩进的两行print语句执行了,否则,去把else
执行了.
当然上面的判断是很粗略的,完全可以用elif
做更细致的判断:
age = 3
if age >= 18:
print('adult')
elif age >= 6: print('teenager') else: print('kid')
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
,
所以,请测试并解释为什么下面的程序打印的是teenager
:
age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid')
最后看一个有问题的条件判断。用input()
读取用户的输入,用if判断时会报错。
这是因为input()
返回的数据类型是str
,str
不能直接和整数比较,必须先把str
转换成整数。Python提供了int()
函数来完成这件事情:
1 age=input('press your age:') 2 age=int(age) 3 if age>=18: 4 print('your age is:',age) 5 print('you are an adult.') 6 else : 7 print('your age is:',age) 8 print('you are a child.')
下面做练习:
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
- 低于18.5:过轻
- 18.5-25:正常
- 25-28:过重
- 28-32:肥胖
- 高于32:严重肥胖
用if-elif
判断并打印结果:
1 height=1.75 2 weight=80.5 3 bmi=weight/(height*height) 4 if bmi>32: 5 print('严重肥胖') 6 elif bmi>=28: 7 print('肥胖') 8 elif bmi>=25: 9 print('过重') 10 elif bmi>=18.5: 11 print('正常') 12 else: 13 print('过轻')