第 3 章 · 分支结构 — 课堂例题
共 7 道例题,代码直接取自讲稿,代码高亮,一键复制
例题 1
BMI 身体质量指数计算器
演示从单 if 到 if-elif-else 的三个版本迭代,体会分支结构逐步完善的过程。公式:BMI = 体重(kg) ÷ 身高(m)²
Python
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'{bmi = :.1f}')
# 多级 if-elif-else
if bmi < 18.5:
print('你的体重过轻!')
elif bmi < 24:
print('你的身材很棒!')
elif bmi < 27:
print('你的体重过重!')
elif bmi < 30:
print('你已轻度肥胖!')
elif bmi < 35:
print('你已中度肥胖!')
else:
print('你已重度肥胖!')
例题 2
简易计算器(嵌套 if)
在处理除法时用嵌套 if 检查除数是否为零,演示嵌套选择结构的实际用途。
Python
num1 = float(input("请输入第一个运算数: "))
operator = input("请输入运算符(+、-、*、/): ")
num2 = float(input("请输入第二个运算数: "))
if operator == '+':
print(num1 + num2)
elif operator == '-':
print(num1 - num2)
elif operator == '*':
print(num1 * num2)
elif operator == '/':
if num2 == 0:
print("除数不能为0")
else:
print(num1 / num2)
else:
print("不支持的运算符")
例题 3
百分制成绩转等级
使用 if-elif-else 将百分制成绩转换为 A/B/C/D/E 五个等级,注意条件从高到低排列。
Python
score = int(input("请输入百分制成绩:"))
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 70:
print('C')
elif score >= 60:
print('D')
else:
print('E')
例题 4
计算三角形周长和面积
先检查三边是否满足三角形条件(任意两边之和大于第三边),再用海伦公式计算面积。
Python
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
l = a + b + c
print(f'周长: {l}')
s = l / 2
area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
print(f'面积: {area:.2f}')
else:
print('不能构成三角形')
例题 5
判定闰年
闰年判断规则:能被4整除但不能被100整除,或能被400整除。注意:not > and > or。
Python
year = int(input("请输入年份:"))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print("闰年")
else:
print("平年")
例题 6
match-case 安全计算器
使用 Python 3.10+ 的 match-case 语法重写计算器,演示条件守卫(Guard)防止除零错误。
Python
def safe_calculator(operator, a, b):
match operator:
case "+":
return f"{a} + {b} = {a + b}"
case "-":
return f"{a} - {b} = {a - b}"
case "*":
return f"{a} × {b} = {a * b}"
case "/" if b != 0: # 条件守卫
return f"{a} ÷ {b} = {a / b}"
case "/":
return "❌ 错误:除数不能为0"
case _:
return "❌ 不支持的运算符"
print(safe_calculator("+", 10, 5))
print(safe_calculator("/", 20, 0))
例题 7
分段函数求值
根据 x 的范围,用 if-elif-else 计算分段函数的值:x<-10 时 y=1,-10≤x≤10 时 y=2,x>10 时 y=3。
Python
x = float(input("请输入x的值:"))
if x < -10:
y = 1
elif x <= 10:
y = 2
else:
y = 3
print(f"y = {y}")