“温度转换”问题
1.温度刻画的两种不同体系
–摄氏度 中国等世界大多数国家使用
以1个标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
–华氏度 美国、英国等国家使用
以1个标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
2.需求分析
两种温度体系的转换
摄氏度转换为华氏度
华氏度转换为摄氏度
3.问题分析
1)该问题中计算部分的理解与确定
–理解1:直接将温度值进行转换
–理解2:将温度信息发布的声音或图像形式进行理解和转换
–理解3:监控温度信息发布渠道,实时获取并转换温度值
2)分析问题
–采用理解1 直接将温度值进行转换
温度数值需要标明温度体系,即摄氏度或华氏度
转换后也要给出转换后的温度标识
3)划分边界
–输入:带华氏或摄氏标志的温度值
–处理:根据温度标志选择适当的温度转换算法
–输出:带摄氏或华氏标志的温度值
4)输入输出格式设计
标识放在温度最后,F表示华氏度,C表示摄氏度
82F表示华氏82度,28C表示摄氏28度
5)设计算法
根据华氏和摄氏温度定义,利用转换公式如下
C = (F - 32) / 1.8
F = C * 1.8 + 32
其中,C表示摄氏温度,F表示华氏温度
4.代码编写
#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) -32 )/1.8
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8*eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")
按F5执行,执行结果如下:
============ RESTART: D:\software\python3.8.2\myexe\#TempConvert.py ============
请输入带有符号的温度值:82f
转换后的温度是27.78C
>>>
============ RESTART: D:\software\python3.8.2\myexe\#TempConvert.py ============
请输入带有符号的温度值:28c
转换后的温度是82.40F
扩展
输入输出的改变
–温度数值与温度标识之间关系的设计可以改变
–标识改变放在温度数值之前:C82,F28
–标识字符改变为多个字符:82Ce、28F
计算问题的扩展:
–温度转换问题是各类转换问题的代表性问题
–货币转换、长度转换、重量转换、面积转换
–问题不同,但程序代码相似