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