温度刻画的两种不同体系

  • 摄氏度:中国等世界大多数国家使用
    • 以1标准大气压下水的结冰点为0度,
    • 以1标准大气压下水的沸点为100度
    • 将温度进行等分刻画
  • 华氏度:美国、英国等国家使用
    • 以1标准大气压下水的结冰点为32度,
    • 以1标准大气压下水的沸点为212度
    • 将温度进行等分刻画

需求分析

两种温度体系的转换

  1. 摄氏度转换为华氏度
  2. 华氏度转换为摄氏度

问题分析

该问题中计算部分的理解和确定(输入是从哪里来的)

  • 理解1:直接将温度值进行转换
  • 理解2:将温度信息发布的声音或图像形式进行理解和转换
  • 理解3:监控温度信息发布渠道,实时获取并转换温度值

确定方案

采用理解1直接将温度值进行转换

  1. 温度数值需要标明温度体系,即摄氏度或华氏度
  2. 转换后也需要给出温度体系

划分边界

  • 标识放在温度最后
  • F表示华氏度
  • C表示摄氏度
  • 82F表示华氏82度
  • 28C表示摄氏28度

输入输出

  • 输入:带华氏或摄氏标志的温度值
  • 处理:根据温度标志选择适当的温度转换算法
  • 输出:带摄氏或华氏标志的温度值

算法设计

根据华氏和摄氏温度定义,利用转换公式如下:
第五章 温度转换 - 图1
第五章 温度转换 - 图2
其中, C表示摄氏温度, F表示华氏温度

实例编写

  1. TempStr = input("hello1: ")
  2. if TempStr[-1] in ['F', 'f']:
  3. C = (eval(TempStr[0:-1]) - 32)/1.8
  4. print("hello2 {:.2f}C".format(C))
  5. elif TempStr[-1] in ['C', 'c']:
  6. F = 1.8*eval(TempStr[0:-1]) + 32
  7. print("hello3 {:.2f}F".format(F))
  8. else:
  9. print("hello4")
  1. TempStr = input("请输入带有符号的温度值: ")
  2. if TempStr[-1] in ['F', 'f']:
  3. C = (eval(TempStr[0:-1]) - 32)/1.8
  4. print("转换后的温度是{:.2f}C".format(C))
  5. elif TempStr[-1] in ['C', 'c']:
  6. F = 1.8*eval(TempStr[0:-1]) + 32
  7. print("转换后的温度是{:.2f}F".format(F))
  8. else:
  9. print("输入格式错误")
  1. temp_str = input("please input the temperature: ")
  2. if temp_str[-1] in ['F', 'f']:
  3. C = (eval(temp_str[0:-1]) - 32) / 1.8
  4. print("the converted temperature: {:.2f}C".format(C))
  5. elif temp_str[-1] in ['C', 'c']:
  6. F = 1.8 * eval(temp_str[0:-1]) + 32
  7. print("the converted temperature: {:.2f}F".format(F))
  8. else:
  9. print("typo or format error")

运行效果

  1. 请输入带有符号的温度值: 100f f100 100-0 100#%
  2. 转换后的温度是37.78C
请输入带有符号的温度值: 100c
转换后的温度是212.00F

举一反三

Python语法元素理解

  • 温度转换程序共10行代码,但包含很多语法元素
  • 清楚理解这10行代码能够快速入门Python语言
  • 参考框架结构、逐行分析、逐词理解

输入输出的改变

  • 温度数值与温度标识之间关系的设计可以改变
  • 标识改变放在温度数值之前:C82、F28
  • 标识字符改变为多个字符:82Ce、28Fa

计算问题的扩展

  • 温度转换问题是各类转换问题的代表性问题
  • 货币转换、长度转换、重量转换、面积转换…
  • 问题不同,但程序代码相似