条件判断
在python中条件判断 用if语句来实现:
1
2
3
4
5
6
7
|
>>> age = 20
>>> if age > = 18 : # 注意 if 后的 : 引号
print ( 'your age is %d' % age)
print ( 'adult' )
your age is 20
adult |
根据python的缩进规则,如果if语句判断是True,就把缩进的两行python执行了,否则什么也不做
也可以给 if 添加一个 else 语句
1
2
3
4
5
6
7
8
9
10
|
>>> age = 3
>>> if age> = 18 :
print ( 'your age is' ,age)
print ( 'adult' )
else :
print ( 'your age is' ,age)
print ( 'teenager' )
your age is 3
teenager |
还有一种更加细致的判断 elif :
1
2
3
4
5
6
7
8
9
|
>>> age = 3
>>> if age > = 18 :
print ( 'adult' )
elif age > = 6 :
print ( 'teenager' )
else :
print ( 'kid' )
kid |
elif 是 else if 的判断,完全可以有多个 elif 所以 if 的完整形式就是:
if <条件判断>:
<执行1>
elif <条件判断>:
<执行2>
elif < 条件判断>:
<执行3>
else:
<执行4>
if 语句执行有个特点,它是从上往下判断,如果在某个判断是 True ,就把该判断对应的语句执行后,就忽略剩下的
elif 和 else 。
if 判断条件换可以简写,比如写:
1
2
|
>>> if x:
print ( 'True' )
|
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为 False。
再议input
再看一个有问题的条件判断。用input()读取用户的输入,这样可以自己输入,程序的运行得更有意思:
1
2
3
4
5
6
|
birth = input ( 'birth:' )
if birth< 2000 :
print ( '00前' )
else :
print ( '00后' )
>>>birth: 1982
|
输入 1982 后,结果报错:
1
2
3
4
|
Traceback (most recent call last): File "E:/Python/lianxi.py" , line 2 , in <module>
if birth< 2000 :
TypeError: unorderable types: str () < int ()
|
这是因为input() 返回的数据类型是 str ,str不能直接和整数比较,必须先把str转换成整数。python提供了int()函数来完成这件事情:
1
2
3
4
5
6
7
8
9
|
birth = input ( 'birth:' )
birth = int (birth)
if birth< 2000 :
print ( '00前' )
else :
print ( '00后' )
>>>birth: 1995
00 前
>>> |
再次运行,这次输入一个字符串 又得到一个错误报告:
1
2
3
4
5
6
7
|
>>> birth:qwe Traceback (most recent call last): File "E:/Python/lianxi.py" , line 2 , in <module>
birth = int (birth)
ValueError: invalid literal for int () with base 10 : 'qwe'
>>> |
当int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。
练习
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
-
低于18.5:过轻
-
18.5-25:正常
-
25-28:过重
-
28-32:肥胖
-
高于32:严重肥胖
用if-elif
判断并打印结果:
体质指数(BMI)=体重(kg)÷身高^2(m)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
h = float ( input ( 'hright:' )) #体质指数(BMI)=体重(kg)÷身高^2(m)
w = float ( input ( 'weight:' ))
bmi = w / h * * 2
if bmi < 18.5 :
print ( 'BMI=%0.2f,过轻' % bmi)
elif bmi < 25 :
print ( 'BMI=%0.2f,正常' % bmi)
elif bmi < 28 :
print ( 'BMI=%0.2f,过重' % bmi)
elif bmi < 32 :
print ( 'BMI=%0.2f,肥胖' % bmi)
else :
print ( 'BMI=%0.2f,严重肥胖' % bmi)
|
一个数x的n次方的表达方法:
1
2
3
4
5
6
7
8
9
10
|
#x=x**n; #x=pow(x,n) >>> h = 1.75
>>> h = pow (h, 2 )
>>> h 3.0625 >>> h = 1.75
>>> h = h * * 2
>>> print (h)
3.0625
|