和其它编程语言一样,按照执行流程划分,Python 程序也可分为 3 大结构,即顺序结构、选择(分支)结构和循环结构:
选择(分支)结构
条件判断
条件判断是程序实现自动化任务的基础之一,比如,当程序跟用户作交互时,程序可以根据用户输入的数据进行判断,从而执行不同的代码语句,在Python程序中,用 if 语句实现
注:和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。
Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)
>>> age = 10
>>> if age > 18 : # if 后面跟一个表达式当这个表达式为True则执行if下缩进的语句
print("大于18岁,达到法定年龄已成年")
对“表达式”的说明:“表达式”可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行。不管“表达式”的结果是什么类型,if else 都能判断它是否成立(真或者假);
上面说过,if 和 elif 后面的“表达式”的形式是很自由的,只要表达式有一个结果,不管这个结果是什么类型,Python 都能判断它是“真”还是“假”。
布尔类型(bool)只有两个值,分别是 True 和 False,Python 会把 True 当做“真”,把 False 当做“假”。
对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”。
对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真。比如,下面的表达式都是不成立的
"" #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典
None #空值
0/0.0 #0值
一旦某个表达式成立,Python 就会执行它后面对应的代码块;如果所有表达式都不成立,那就执行 else 后面的代码块;如果没有 else 部分,那就什么也不执行。
else 当if 条件不满足(False/None/空)时会执行else所属的子语句块,如果if 后面的条件为(True/非空)则跳过else下缩进的语句执行后续主语句
a = int(input("请输入你的体重:"))
if a >= 120:
print("你好重啊,要减肥了!")
else:
if a>=90 and a<120:
print("标准体重,请继续保持哦!")
else:
print("你太瘦了要多吃点啊!")
# 该语句不属于if/else的子代码块
print("还是要多运动保持健康啊!")
请输入你的体重:120
你好重啊,要减肥了!
还是要多运动保持健康啊!
Python是根据缩进来判断代码块包含关系的,如果 if 条件是 True ,就执行if下缩进的子语句,如果为False,则执行else下缩进的子语句
if 1:
print("表达式为1条件成立")
else:
print("表达式为1条件不成立")
# 表达式为1条件成立
if []:
print("表达式为空list条件成立")
else:
print("表达式为空list条件不成立")
# 表达式为空list条件不成立
if "":
print("表达式为空str条件成立")
else:
print("表达式为空str条件不成立")
# 表达式为空str条件不成立
if 0:
print("表达式为0条件成立")
else:
print("表达式为0条件不成立")
# 表达式为0条件不成立
elif 是 else if 的缩写,上面计算体重的代码可以通过elif来简写
a = int(input("请输入你的体重:"))
if a >= 120:
print("你好重啊,要减肥了!")
elif a>=90 and a<120:
print("标准体重,请继续保持哦!")
else:
print("你太瘦了要多吃点啊!")
print("还是要多运动保持健康啊!")
请输入你的体重:120
你好重啊,要减肥了!
还是要多运动保持健康啊!
注:if 语句执行顺序是从上往下判断,在当判断是True时,会执行这个条件的子语句,并忽略掉剩余的elif 和 else
age = 60
if age>=60:
print("已步入老年")
elif 35<=age<60:
print("已成中年")
elif 18<=age<35:
print("还是青年")
else:
print("还未成年")
# 输出:已步入老年
选择分支结构,不管有多少个分支,都只能执行一个分支,或者一个也不执行,不能同时执行多个分支。
练习:
已知bmi指数用于计算一个人体重是否超标,bmi = weight / (height * height)
当bmi<18.5时体重过轻,18.5≤bmi<24.9时体重在正常范围,24.9≤bmi<29.9时体重过重,bmi≥29.9时属于肥胖
要求编写代码,实现输入用户的体重weight,身高height,后代码自动判断用户体型
当体重过轻时输出语句:
BMI指数为:xxxxxx(xxxx为计算出的bmi值,无需四舍五入)
体重过轻,注意锻炼和营养
当体重正常时输出语句:
BMI指数为:xxxxxx(xxxx为计算出的bmi值,无需四舍五入)
正常范围,注意保持
当体重过重时输出语句:
BMI指数为:xxxxxx(xxxx为计算出的bmi值,无需四舍五入)
体重过重,注意减少热量摄入
当体重肥胖时输出语句:
BMI指数为:xxxxxx(xxxx为计算出的bmi值,无需四舍五入)
肥胖体型,请制定减肥计划,保持健康
作业:
判断是否为酒后驾车
如果规定,车辆驾驶员的血液酒精含量proof小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。试编写 Python 程序输入proof值判断是否为酒后驾车
proof = int(input("输入驾驶员每 100ml 血液酒精的含量:"))
'''请完善下面代码逻辑实现判断是否酒驾/醉驾'''