在前几小节所写的程序都是顺序执行的,而实际应用中,往往还有包括分支、循环的结构。比如,如果明天不下雨,我们就去登山;如果三门课总分大于295,就被评为优秀等等。本小节,我们将学习流程控制。
基本的if语句的格式如图所示:
如果expr为真,则执行后面的语句,否则执行后面的语句。请看个例子。
-
BMI指数计算方法是体重(千克)除以身高(米)的平方,可以反映人体胖瘦程度。
-
BMI在18.5到23.9属于正常范围,低于或高于这个范围都会对健康有影响。
height = float(input("请输入身高(米):"))
weight = float(input("请输入体重(千克):"))
BMI = weight / height ** 2
if 18.5<= BMI <= 23.9:
print(f"您的BMI指数为{BMI:.1f},身体很健康!")
可以看到,只有expr的值为真,才会输出身体健康。如果不健康还需要提示,该怎么办呢?
可以加上else分支。
height = float(input("请输入身高(米):"))
weight = float(input("请输入体重(千克):"))
BMI = weight / height ** 2
if 18.5<= BMI <= 23.9:
print(f"您的BMI指数为{BMI:.1f},身体很健康!")
else:
print("您身体处于亚健康状态!")
如果希望超过23.9,提示太胖,低于18.5,提示太瘦呢?
是的,加elif分支。
height = float(input("请输入身高(米):"))
weight = float(input("请输入体重(千克):"))
BMI = weight / height ** 2
if 18.5<= BMI <= 23.9:
print(f"您的BMI指数为{BMI:.1f},身体很健康!")
elif BMI < 18.5:
print("您太瘦了!")
else:
print("您太胖了!")
总结一下,if语句的常见格式如下:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
如果condition_1为真,则执行statement_block_1,以此往下推。
从前面的程序看到,Python是通过缩进来表达代码的层次关系,建议使用4个空格来缩进。
if语句可以嵌套,就是在if里还可以有if。
提示:如果您的Python版本高于3.10,可以使用match-case。