Bootstrap

1.3 实例1:温度转换 | Python语言程序设计(嵩天)


课程简介

计算机是运算工具,更是创新平台,高效有趣地利用计算机需要更简洁实用的编程语言。Python简洁却强大、简单却专业,它是当今世界最受欢迎的编程语言,学好它终身受用。请跟随我们,学习并掌握Python语言,一起动起来,站在风口、享受创新!
—— 课程团队

在这里插入图片描述


MOOC课程:
Python语言程序设计(嵩天 、黄天羽 、礼欣)
北京理工大学

课程视频地址:

课程视频-B站

授课目标:

本课程适合如下教学目标:

  • 程序设计入门课:面向各层次各专业大学在校生、部分优秀高中生,作为程序设计入门课程
  • 体系化编程基础:面向拟构建坚实编程能力的自学者,作为不断奋斗的参考在线课程
  • Python科目备考:面向全国计算机等级考试二级Python科目的备考考生,作为在线备考资源
  • 再试一次的尝试:面向拟放弃计算机或编程学习的学习者,作为再试一次的课程资源,学不会这门课学再放弃不迟…

第一章 Python基本语法


1.3 实例1:温度转换


问题分析


两种温度体系

  • 摄氏度 ( ℃ ℃ )
    以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。
    中国等大多数国家使用。

  • 华氏度 ( ℉ ℉ )
    以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。
    美国、英国等大多数国家使用。


需求分析

问题的需求分析:

  1. 两种温度体系之间相互转换。

  2. 摄氏度转换为华氏度,华氏度转换为摄氏度。


确定问题的计算部分

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

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

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

划分问题的边界

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

→ 输入、输出格式设计
标识放在温度最后,F表示华氏度,C表示摄氏度。即:82F表示华氏82度,28C表示摄氏28度。

→ 算法设计
根据华氏和摄氏温度定义,利用转换公式如下:
C = ( F − 32 ) ÷ 1.8 C=(F-32)÷1.8 C=(F32)÷1.8
F = C × 1.8 + 32 F=C×1.8+32 F=C×1.8+32
这里的 C C C 表示摄氏温度, F F F 表示华氏温度。


实例编写

实例1:
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
题目来源:python123

要求:

  • ① 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
  • ② 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
  • ③ 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;

代码:

#TempConvert v1.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("输入格式错误")

举一反三


Python语法元素理解

温度转换程序共10行代码,但包含很多语法元素。通过参考实例代码的框架结构,逐行分析、逐词理解,初步感受Python语法。


改变输入、输出

  • 改变温度数值与温度标识之间的关系设计。
  • 标识改变放在温度数值之前:C82F28
  • 标识字符改变为多个字符:82Ce28Fa

例:
温度转换2(相同的问题背景,要求不同)

题目来源:python123
要求:

  • ① 输入、输出的摄氏度采用大写字母"C"开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
  • ② 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;
  • ③ 不考虑异常输入的问题,输出保留小数点后两位;

代码:

#TempConvert v2.py
TempStr = input()
if TempStr[0] in ['F']:
    C = (eval(TempStr[1:]) - 32)/1.8
    print("C{:.2f}".format(C))
elif TempStr[0] in ['C']:
    F = 1.8 * eval(TempStr[1:]) + 32
    print("F{:.2f}".format(F))
else:
    print()

扩展计算问题

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


补充

其它温度体系计算公式:


在这里插入图片描述



不同温度尺度参考示例图:


不同温度体系参考1



不同温度体系参考2


版权说明

在这里插入图片描述

;