Python学习笔记(五)——程序的分支结构
文章目录
- Python学习笔记(五)——程序的分支结构
- 单分支结构
- 二分支结构
- 多分支结构
- 条件判断及组合
- 操作符
- 用于条件组合的三个保留字
- 程序的异常处理
- 异常处理的基本使用
- 异常处理的高级使用
- 身体质量指数BMI实例
单分支结构
根据判断条件结果而选择不同向前路径的运行方式
if <条件> :
<语句块>
#猜数字
guess = eval(input())
if guess == 99:
print("猜对了")
二分支结构
根据判断条件结果而选择不同向前路径的运行方式
if <条件> :
<语句块1>
else :
<语句块2>
#猜数字
guess = eval(input())
if guess == 99:
print("猜对了")
else :
print("猜错了")
紧凑形式: 适用于简单表达式的二分支结构
<表达式1> if <条件> else <表达式2>
#猜数字
guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错"))
多分支结构
#对不同分数分级的问题
score = eval(input())
if score >= 60:
grade = "D"
elif score >= 70:
grade = "C"
elif score >= 80:
grade = "B"
elif score >= 90:
grade = "A"
print("输入成绩属于级别{}".format(grade))
#此程序错误,因为存在多分支覆盖现象
条件判断及组合
操作符
操作符 | 描述 |
< | 小于 |
<= | 小于等于 |
>= | 大于等于 |
> | 大于 |
== | 等于 |
!= | 不等于 |
用于条件组合的三个保留字
操作符及使用 | 描述 |
x and y | 两个条件x和y的逻辑与 |
x or y | 两个条件x和y的逻辑或 |
not x | 条件x的逻辑非 |
#猜数字
guess = eval(input())
if guess > 99 or guess < 99:
print("猜错了")
else :
print("猜对了")
程序的异常处理
异常处理的基本使用
try :
<语句块1>
except :
<语句块2>
try :
num = eval(input("请输入一个整数"))
print(num**2)
except :
print("输入不是整数")
##3**2 = 9
或者
try :
<语句块1>
except <异常类型> :
<语句块2>
try :
num = eval(input("请输入一个整数"))
print(num**2)
except NameError:
print("输入不是整数")
标注异常类型后,仅响应该异常。异常类型名字等同于变量。
异常处理的高级使用
try :
<语句块1>
except :
<语句块2>
else :
<语句块3>
finally :
<语句块4>
注:finally对应的语句块4一定执行;else对应的语句块3在不发生异常时执行
身体质量指数BMI实例
BMI:Body Mass Index,对身体质量的刻画。国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析。定义为
BMI = 体重(kg)/ 身高^2 (m^2)
BMI对身体健康的刻画:
分类 | 国际BMI值(kg/m^2) | 国内BMI值(kg/m^2) |
偏瘦 | <18.5 | <18.5 |
正常 | 18.5~25 | 18.5~24 |
偏胖 | 25~30 | 24~28 |
肥胖 | >=30 | >=28 |
问题需求:
- 输入:给定体重和身高值
- 输出:BMI指标分类信息(国际和国内)
思路方法:
- 难点在于同时输出国际和国内对应的分类
- 思路一:分别计算并给出国际和国内BMI分类
- 思路二:混合计算并给出国际和国内BMI分类
#CalBMIv1.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
who = "偏瘦"
elif 19.5 <= bmi < 25:
who = "正常"
elif 25 <= bmi <30:
who = "偏胖"
else :
who = "肥胖"
print("BMI 指标为:国际'{0}'".format(who))
#CalBMIv2.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who, nat = ","
if bmi < 18.5:
who, nat = "偏瘦", "偏瘦"
elif 19.5 <= bmi < 24:
who, nat = "正常", "正常"
elif 24 <= bmi < 25:
who, nat = "正常", "偏胖"
elif 25 <= bmi < 28:
who, nat = "偏胖", "偏胖"
elif 28 <= bmi < 30:
who, nat = "偏胖", "肥胖"
else :
who, nat = "肥胖", "肥胖"
print("BMI 指标为:国际'{0}',国内'{1}'".format(who, nat))