条件判断
在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
|