01-03 实例1-温度转换
_______egon新书来袭请看:https://egonlin.com/book.html
一、"温度转换"问题分析
1.1 温度转换
温度刻画的两种不同体系
- 摄氏度:中国等世界大多数国家使用
- 以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
- 华氏度:美国、英国等国家使用
- 以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
1.2 需求分析
两种温度体系的转换
- 摄氏度转换为华氏度
- 华氏度转换为摄氏度
1.3 问题分析
该问题中计算部分的理解和确定
- 理解1:直接将温度值进行转换
- 理解2:将温度信息发布的声音或图像形式进行理解和转换
- 理解3:监控温度信息发布渠道,实时获取并转换温度值
1.3.1 分析问题
- 采用 理解1:直接将温度值进行转换
- 温度数值需要标明温度体系,即摄氏度或华氏度
- 转换后也需要给出温度体系
1.3.2 划分边界
- 输入:带华氏或摄氏标志的温度值
- 处理:根据温度标志选择适当的温度转换算法
- 输出:带摄氏或华氏标志的温度值
1.3.3 输入输出格式设计
标识放在温度最后,F表示华氏度,C表示摄氏度
82F表示华氏82度,28C表示摄氏28度
1.3.4 设计算法
根据华氏和摄氏温度定义,利用转换公式如下:
\[𝐶=(𝐹–32)/1.8
\]
\[𝐹=𝐶∗1.8+32
\]
其中, C表示摄氏温度, F表示华氏温度
二、"温度转换"实例编写
# TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32) / 1.8
print(f"转换后的温度是{C:.2f}C")
elif TempStr[-1] in ['C', 'c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print(f"转换后的温度是{F:.2f}F")
else:
print("输入格式错误")
编写上述代码,并保存为TempConvert.py文件
# TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32) / 1.8
print(f"转换后的温度是{C:.2f}C")
elif TempStr[-1] in ['C', 'c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print(f"转换后的温度是{F:.2f}F")
else:
print("输入格式错误")
请输入带有符号的温度值: 12f
转换后的温度是-11.11C
三、"温度转换"举一反三
3.1 Python语法元素理解
- 温度转换程序共10行代码,但包含很多语法元素
- 清楚理解这10行代码能够快速入门Python语言
- 参考框架结构、逐行分析、逐词理解
3.2 输入输出的改变
- 温度数值与温度标识之间关系的设计可以改变
- 标识改变放在温度数值之前:C82, F28
- 标识字符改变为多个字符:82Ce、28Fa
3.3 计算问题的扩展
- 温度转换问题是各类转换问题的代表性问题
- 货币转换、长度转换、重量转换、面积转换…
- 问题不同,但程序代码相似