第 2 章 · 顺序结构 — 课堂例题
共 8 道例题,代码直接取自讲稿,代码高亮,一键复制
例题 1
华氏温度转摄氏温度
输入华氏温度 F,按公式 C = (F - 32) / 1.8 转换为摄氏温度,演示 % 格式化和 f-string 两种输出方式。
Python
f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c)) # % 格式化
print(f'{f:.1f}华氏度 = {c:.1f}摄氏度') # f-string
例题 2
计算圆的周长和面积
输入圆的半径,使用 import math 导入模块,用 math.pi 获得精确的圆周率来计算周长和面积。
Python
import math
radius = float(input('请输入圆的半径: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius ** 2
print(f'周长: {perimeter:.2f}')
print(f'面积: {area:.2f}')
例题 3
变量交换(偷天换日)
演示两种变量交换方法:传统方法(借助临时变量)和 Python 特有的并行赋值一行交换。
Python
a = "Python"
b = 4
print("交换前: a =", a, "b =", b)
# 方法1:借助临时变量
t = a
a = b
b = t
print("方法1后: a =", a, "b =", b)
# 方法2:Python 一行交换(推荐)
a, b = b, a
print("方法2后: a =", a, "b =", b)
例题 4
两位数翻转(数位分解)
使用整除(//)取十位、取余(%)取个位,将两位数翻转。例如输入 12,输出 21。
Python
num = int(input("请输入一个两位的整数:"))
s = num // 10 # 十位
g = num % 10 # 个位
r_num = g * 10 + s
print("翻转后的数为:", r_num)
例题 5
三位数各位数字求和
连续用 % 10 取末位、//= 10 去掉末位,逐步提取每一位数字并求和。
Python
num = int(input("请输入一个0到999的整数:"))
a = num % 10; num //= 10 # 个位
b = num % 10; num //= 10 # 十位
c = num % 10 # 百位
print(f"各位数字之和是:{a + b + c}")
例题 6
时间转换
输入时分秒和经过秒数,先将所有时间转换为总秒数,再用整除和取余分解为新的时分秒格式。
Python
h = int(input("时"))
m = int(input("分"))
s = int(input("秒"))
n = int(input("经过的时间(秒)"))
t = h * 3600 + m * 60 + s + n # 转为总秒数
new_h = t // 3600
new_m = (t % 3600) // 60
new_s = t % 60
print(f"{new_h}时 {new_m}分 {new_s}秒")
例题 7
求一元二次方程的根
使用求根公式,Python 中开平方根用 ** 0.5(即 0.5 次方)实现。输入 1 -5 6,输出 3.0 和 2.0。
Python
a = int(input("请输入a: "))
b = int(input("请输入b: "))
c = int(input("请输入c: "))
d = (b * b - 4 * a * c) ** 0.5 # 判别式开方
x1 = (-b + d) / (2 * a)
x2 = (-b - d) / (2 * a)
print("方程的两个根为:", x1, x2)
例题 8
最小数量的硬币(Decimal精度)
将金额兑换成最少数量的硬币。使用 decimal.Decimal 避免浮点精度问题,从大面额到小面额依次整除。
Python
from decimal import Decimal
s = int(Decimal(input("请输入金额(元):")) * 100) # 转为分,避免浮点误差
yy = s // 100; s = s % 100 # 一元
wj = s // 50; s = s % 50 # 五角
yj = s // 10; s = s % 10 # 一角
wf = s // 5; s = s % 5 # 五分
print(f"{yy}个一元")
print(f"{wj}个五角")
print(f"{yj}个一角")
print(f"{wf}个五分")
print(f"{s}个一分")