计算机程序就是顺序向下一步步进行条件判断,执行不同指令。条件判断可以说是计算机程序的精髓所在。
条件判断
if列出条件,如果判断为True,就执行后面的指令,如果判断为False,不执行if后的指令,去执行else后面的指令,if条件和else后面都要加: 对应执行的命令记得缩进:
>>> 年龄 = 18 >>> if 年龄 >= 18: print('你的年龄是',年龄) print('成人') else: print('你的年龄是',年龄) print('未成年人') 你的年龄是 18 成人 >>> 年龄 = 11 >>> if 年龄 >= 18: print('你的年龄是',年龄) print('成人') else: print('你的年龄是',年龄) print('未成年人') 你的年龄是 11 未成年人
注意:因为是单纯的一个判断循环,我们直接在交互模式下就可以输入指令并执行。可以看出,上面对于年龄的判断其实还不是很细致,这时候我们需要elif语句来进一步细分年龄的划分:
>>> 年龄 = 5 >>> if 年龄 >= 18: print('你的年龄是',年龄) print('成人') elif 年龄 >= 6: print('你的年龄是',年龄) print('青少年') else: print('儿童') 儿童
通过上面的例子可以看出,程序是严格按照自上而下的顺序执行的,我们在编写if、elif、else的条件时一定要注意执行的顺序。在一个系列的判断中,elif可以有多个:
if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
if语句还可以直接判断一个量是否为空、是否为零,如:
>>> x = 1 >>> if x: print('True') else: print('False') True >>> x =0 >>> if x: print('True') else: print('False') False >>> x = () >>> if x: print('True') else: print('False') False
错误案例分析
看下面的案例,为什么会报错?
>>> 出生年份 = input('请输入您的出生年份') 请输入您的出生年份1985 >>> if birth < 2000: print('00前') else: print('00后') Traceback (most recent call last): File "<pyshell#51>", line 1, in <module> if 出生年份 < 2000: TypeError: '<' not supported between instances of 'str' and 'int'
看报错信息:不能在str和int之间做<运算,这里因为input的内容默认为str字符串,一个字符串不能直接和整数数值做比较,我们需要把用户输入的字符串转换为整数数值,如下
>>> 出生年份 = input('请输入您的出生年份') 请输入您的出生年份1985 >>> s = int(出生年份) >>> if s < 2000: print('00前') else: print('00后') 00前
实例练习
请用户输入姓名、身高、体重,计算用户BMI指数(体重除以身高的平方),并根据该指数给出用户肥胖程度判断:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
# -*- coding: UTF-8 -*- # Filename : 肥胖程度.py # author by : www.woodmanzhang.com # 肥胖程度 name = input('请输入您的姓名:') height = input('请输入您的身高(厘米):') weight = input('请输入您的体重(公斤):') h = int(height) w = int(weight) b = w/h**2 if b < 18.5: print(name,'您好,您的体重过轻') elif b < 25: print(name,'您好,您的体重正常') elif b < 28: print(name,'您好,您的体重过重') elif b < 32: print(name,'您好,您的体重处于肥胖状态') else: print(name,'您好,您的体重处于严重肥胖')
执行结果演示:
肥胖程度.py 请输入您的姓名:木人张 请输入您的身高(厘米):170 请输入您的体重(公斤):90 木人张 您好,您的体重过轻