# 第13期—温度转化

Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 1 问题描述

温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)
摄氏度: 中国等世界大多数国家使用
以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
华氏度: 美国、英国等国家使用
以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画​

根据华氏和摄氏温度定义,转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32

请用Python编写程序将用户输入的温度进行转换~

# 2 解题思路

  • 首先请用户输入带华氏或摄氏标志的温度值
  • 然后根据温度标志选择适当的温度转换算法
  • 最后输出转换后的温度

# 3 解题方法

num = input("请输入带有符号的温度值: ")

if num[-1] in ['C', 'c']:
	f = 1.8 * float(num[0:-1]) + 32
	print(f"转换后的温度是{f:0.2f}华氏度")
elif num[-1] in ['F', 'f']:
	c = (float(num[0:-1]) - 32) / 1.8
	print(f"转换后的温度是{c:0.2f}摄氏度")
else:
	print("输入格式错误")
1
2
3
4
5
6
7
8
9
10

第1行: 定义变量num,用input函数获取用户输入的带有符号的温度值
第3-5行: 通过索引获取用户输入的最后一位字符,用in判断该字符是否在列表['C', 'c']中,即判断用户输入的是不是摄氏温度。若用户输入的是摄氏温度,则通过温度转换公式将摄氏温度转换为华氏温度,用print函数输出运行结果,保留小数点后两位。
第6-8行: 用in判断用户输入的最后一位字符是否在列表['F', 'f']中,即判断用户输入的是不是华氏温度。若用户输入的是华氏温度,则通过温度转换公式将华氏温度转换为摄氏温度,用print函数输出运行结果。
第9-10行: 否则,用print函数打印“输入格式错误”

  • 由于input()函数返回的数据类型为字符串型,所以第4行需要用float函数将其转化为浮点数类型再进行计算
  • 用户输入的字符串是有序的排列,如用户输入34C,则第一个字符是3,第二个是4,第三个是C
  • 在 Python 中,字符串中的字符可以通过索引来提取,从前往后索引时,下标从 0 开始,从后往前索引时,下标从 -1 开始。因此num[0:-1]表示取从前往后的第一个字符到从后往前的第一个字符,但不包括从后往前的第一个字符(因为索引不包含尾下标的元素),如用户输入34C,获取的元素是34
    13-1 温度转换

# 4 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM