一、"温度转换"问题分析

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 设计算法

根据华氏和摄氏温度定义,利用转换公式如下:

 

C=(F–32)/1.8F=C∗1.8+32C=(F–32)/1.8F=C∗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
# 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("输入格式错误")
请输入带有符号的温度值: 12c
转换后的温度是53.60F
三、"温度转换"举一反三

3.1 Python语法元素理解

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

3.2 输入输出的改变

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

3.3 计算问题的扩展

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