执行顺序
大体为从上到下,若碰到分支则进入不同的分支,若有循环则会执行多次相同的代码,在某些语言里面有类似于goto的语句,则它可以跳转至指定的标签。
单分支判断
age = 17
if age >= 18:
print("已经成年")
双分支判断
age = 17
# 满足条件执行if
if age >= 18:
print("已经成年")
# 不满足条件执行else
else:
print("未成年")
if嵌套
score = 90
# 满足条件执行if
if score >= 90:
print("A")
else:
if 80<=score<90:
print("B")
else:
if 70<=score<80:
print("C")
多分支判断
score = 90
if score >= 90:
print("A")
elif 80<=score<90:
print("B")
elif 70<=score<80:
print("C")
小节练习
对3中的体脂率计算进行优化:
对于输入要判断是否在正常范围之内,如0-3m之间。包括体重、年龄、性别。
对于数据处理,根据区分男女进行分类计算。
对于输出,更人性化语言。
# 输入设置
Pheight = eval(input("请输入身高(m):"))
Pweight = eval(input("请输入体重(kg):"))
Page = eval(input("请输入年龄:"))
Psex = eval(input("请输入性别(男:1 女:0):"))
# 数据有效行验证
if not(0<Pheight<3 and 0<Pweight<300 and 0<Page<150 and (Psex == 1 or Psex == 0)):
print("数据错误,请检查重新输入")
exit()
# 数据处理
BMI = Pweight/(Pheight**2)
TZL = 1.2 * BMI + 0.23 * Page - 5.4 - 10.8 * Psex
# 区分男女
if Psex==1:
result = 15<TZL<18
elif Psex==0:
result = 25<TZL<28
#输出设置
if Psex==1:
wenhao = "先生你好,"
minNum = 15
maxNum = 18
elif Psex==0:
wenhao = "女士你好,"
minNum = 25
maxNum = 28
if result:
notice = "您的体脂率正常"
else:
if TZL > maxNum:
notice = "您的体脂率不正常,偏胖"
else:
notice = "您的体脂率不正常,偏瘦"
print(wenhao,notice,sep="")
输出: