华氏度与摄氏度转换
本文主要通过一段简单代码,介绍在python中实现温度转换的一个样例。
代码来自mooc国家精品课程《Python语言程序设计》,也是我重温python的指导课程。
我在每行代码后都做了备注,方便大家进行理解。
'''
规定输入格式为:数值+C/F C代表输入为摄氏度,F代表输入为华氏度。
例如:20.5C 20.5c 60F 58.2f
摄氏度与华氏度的换算为:摄氏度*1.8+32=华氏度
'''
TempStr = input("请输入带有符号的温度值:") #取输入
if TempStr[-1] in ['F', 'f']:
#判断输入值的最后一个符号是否为华氏度符号大小写F
#[]代表数据类型为列表类型,内元素用','隔开,表示多个元素。
#用保留字in判断变量中的最后一个字符是否属于列表中的元素
C = (eval(TempStr[0:-1]) - 32)/1.8
#如果是的话,取输入除最后一位的所有字符执行计算
#[0:-1]这是切片的一种用法,代表取字符串的第0个元素到最后一个元素,但不包含最后一个元素
#eval() 评估函数,将最外侧的引号去掉。详细见文末。
print("转换后的温度是{:.2f}C".format(C))
#输出取Float型且保留两位小数.format()函数是一种格式化函数
#可参考菜鸟教程关于format函数的教程
#https://www.runoob.com/python/att-string-format.html
elif TempStr[-1] in ['C', 'c']:
#判断输入值的最后一个符号是否为华氏度符号大小写C
F = 1.8*eval(TempStr[0:-1]) + 32
#如果是的话,取输入除最后一位的所有字符执行计算
print("转换后的温度是{:.2f}F".format(F))
else:
#当输入格式不符合以上两种情况时,判断格式错误
print("输入格式错误")
补充:评估函数:eval()
在上述代码中,TempStr变量切片后的内容仍未一段字符串,字符串是用""圈起来的,所以使用eval函数,就会去掉该外侧引号,使其变为数字类型。这和进行字符串类型转换是相同的。
DDDXXY