python复合条件判断_Python | Python_条件判断

条件判断

基本句式:

if 条件1:

print('第一个结果')

else 条件2:

print('第二个结果')

更详细的判断,使用下面的写法:

if <条件判断1>:

<执行1>

elif <条件判断2>:

<执行2>

elif <条件判断3>:

<执行3>

else:

<执行4>

要注意:不能忘记冒号:

案例:

age = 20

if age >= 6:

print('teenager')

elif age >= 18:

print('adult')

else:

print('kid')

执行结果是 : teenager

这是为什么呢?

原因如下:

1,if语句是按照从上到下进行判断的;

2,当判断到第一行时,age = 20 >6,

判断结果为TURE,所以直接执行了第一个print操作;

3,执行完后,会忽略后面的其他判断.

if判断条件还可以简写,比如写:

if x:

print('True')

只要 x 是非零数值、非空字符串、非空list等,就判断为 True,否则为 False。

再议 input

我们来看一个有问题的条件判断:

很多同学会用 input() 读取用户的输入,

这样可以自己输入,程序运行得更有意思:

birth = input('birth: ') # input输入的是str字符串

if birth < 2000:

print('00前')

else:

print('00后')

输入1982,结果报错:

Traceback (most recent call last):

File "", line 1, in

TypeError: unorderable types: str() > int() #str无法和数字进行大小比较

这是因为 input() 返回的数据类型是str,

str不能直接和整数比较,必须先把str转换成整数。

Python提供了 int() 函数来完成这件事情:

s = input('birth: ')

birth = int(s) #先用int()函数将str转为数字

if birth < 2000:

print('00前')

else:

print('00后')

再次运行,就可以得到正确地结果。

但是,如果输入abc呢?又会得到一个错误信息:

Traceback (most recent call last):

File "", line 1, in

ValueError: invalid literal for int() with base 10: 'abc'

原来int()函数发现一个字符串并不是合法的数字时就会报错,

程序就退出了。

如何检查并捕获程序运行期的错误呢?后面的错误和调试会讲到。

练习:

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

低于18.5:过轻

18.5-25:正常

25-28:过重

28-32:肥胖

高于32:严重肥胖

用if-elif判断并打印结果:

#-*- coding: utf-8 -*-

height = 1.75

weight = 80.5

print(height,'m'),print(weight,'kg')

bmi = weight/(height*height)

if bmi < 18.5:

print('过轻')

elif bmi < 25:

print('正常')

elif bmi < 28:

print('过重')

elif bmi < 32:

print('肥胖')

else:

print('严重肥胖')

最后的输出结果为:

1.75m

80.5kg

过重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值