目录
四、条件判断及组合( >、<、==、>=、<=、!=、and、or、not )
5.3 异常处理方式3( try-except-else-finally )
一、单分支结构( if )
单分支结构程序框架:
if <条件> :
<语句块>
单分支结构流程图表示:
二、二分支结构( if-else )
2.1 松散结构
二分支松散结构程序框架:
if <条件> :
<语句块1>
else :
<语句块2>
二分支松散结构流程图表示:
2.2 紧凑结构
二分支紧凑结构程序框架:
<表达式1> if <条件> else <表达式2>
注:表达式不同于语句,表达式1、2中不应出现赋值操作。
二分支紧凑结构流程图表示:
三、多分支结构( if-elif-else )
多分支结构程序框架:
if <条件1> :
<语句块1>
elif <条件2> :
<语句块2>
elif <条件3> :
<语句块3>
……
elif <条件N-1> :
<语句块N-1>
else :
<语句块N>
注:条件1 ~ N-1间有包含关系、先后关系。
多分支结构流程图表示:
四、条件判断及组合( >、<、==、>=、<=、!=、and、or、not )
操作符 | 判断说明 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
关键字及使用 | 说明 |
---|---|
x and y | 条件 x、y 的逻辑与,返回 True 或 False |
x or y | 条件 x、y 的逻辑或,返回 True 或 False |
not x | 条件 x 的逻辑非,返回 True 或 False |
五、程序的异常处理
异常区别于错误,错误有算法逻辑错误、程序语法错误。
而异常是程序在运行过程中遇到的意料之外的情况,比如:打开一个不存在的文件、新建一个已经存在的文件、访问网络文件时突然断网、程序设计输入数值而用户故意输入字符串等。
没有异常处理的情况下,程序遇到异常会退出并提示异常信息。
5.1 异常处理方式1( try-except )
try :
<语句块1>
except :
<语句块2>
注:若程序运行无异常,则执行语句块1,不执行语句块2;若执行语句块1的过程中遇到异常,则不再继续执行语句块1,跳转并执行语句块2(语句块2响应语句块1中遇到的所有异常)。
5.2 异常处理方式2( try-except )
try :
<语句块1>
except <异常类型的名称> :
<语句块2>
注:
1. 若程序运行无异常,则执行语句块1,不执行语句块2;若执行语句块1的过程中遇到 except 指定的异常,则不再继续执行语句块1,跳转并执行语句块2(语句块2只响应语句块1中遇到的 except 指定的异常);若执行语句块1的过程中遇到非 except 指定的异常,则程序停止运行,并在异常语句处报错。
2. 异常类型的名称是Python中预定义的,可以直接使用,而不用自定义。
5.3 异常处理方式3( try-except-else-finally )
try :
<语句块1>
except :
<语句块2>
else :
<语句块3>
finally :
<语句块4>
注:
1. 语句块1无异常 -> 继续执行完语句块1 -> 跳转并执行完语句块3 -> 跳转并执行完语句块4
2. 语句块1发生异常 -> 终止执行语句块1 -> 跳转并执行完语句块2 -> 跳转并执行完语句块4
六、“身体质量指数BMI”实例
身体质量指数BMI(Body Mass Index),定义:
其中,BMI 为身体质量指数,单位千克每平方米(Kg/m2);M 为人的体重,单位千克(Kg);L 为人的身高,单位米(m)。
分类 | 国内BMI值(Kg/m2) | 国际BMI值(Kg/m2) |
---|---|---|
偏瘦 | < 18.5 | < 18.5 |
正常 | 18.5 ~ 24 | 18.5 ~ 25 |
偏胖 | 24 ~28 | 25 ~ 30 |
肥胖 | ≥ 28 | ≥ 30 |
代码示例:
try :
height, weight = eval(input("请输入你的身高数值(米)和体重数值(千克),用英文逗号隔开:"))
bmi = weight / pow(height, 2)
print("你的身体质量指数BMI为:{:.2f}".format(bmi))
zn, en = "", ""
if bmi < 18.5 :
zn, en = "偏瘦", "偏瘦"
elif 18.5 <= bmi < 24 :
zn, en = "正常", "正常"
elif 24 <= bmi < 25 :
zn, en = "偏胖", "正常"
elif 25 <= bmi < 28 :
zn, en = "偏胖", "偏胖"
elif 28 <= bmi < 30 :
zn, en = "肥胖", "偏胖"
else :
zn, en = "肥胖", "肥胖"
print("国内BMI指标为:{}\n国际BMI指标为:{}".format(zn, en))
except :
print("未输入正确的身高或体重,请重新运行程序再次输入。")
运行结果: