TempStr=input("请输入带有符号的温度值:") #首先输入一个带有温度符号的字符串(比如36c或78f)
# 判断字符串的最后一位是否包含华氏温度符号F/f,或摄氏温度符号C/c
if TempStr[-1] in ['F','f']: #其中,TempStr[-1]代表该字符串最后一位,即符号位
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("格式错误,无法识别") #如果输入的格式不属于温度,则报错
知识:
(1)字符串str【-1】代表倒数第一位,即末尾,通常用来判断该字符串(如果是一个数字带单位的话)的单位
(2)eval()函数:用来执行一个字符串表达式,并返回表达式的值。例如程序中的TempStr[0:-1],指的是去除单位的数字部分
(3)format():格式化函数,通过 {} 和 : 来代替以前的 %,一般用作str.format()
(4)摄氏温度C=(F-32)/1.8,华氏温度F=1.8×C+32。