如何用 python编写华氏摄氏度的相互转换?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用 python编写华氏摄氏度的相互转换?相关的知识,希望对你有一定的参考价值。
华氏度和摄氏度的转换关系为,℉ = 9×℃ /5+32 或 ℃ = 5×(℉- 32)/9
输入为一个字符串,最后一位为'F'表示输入为华氏度,最后一位为'C'表示输入为摄氏度
输出将自动转换成为相同格式的另一种温度。示例的输入为:'30.1C'、'86F'。
tempVal = tempStr[:-1]
try:
tempVal = float(tempVal)
except ValueError:
raise ValueError('Temperature value is not valid.')
tempUnit = tempStr[-1]
if tempUnit == 'F':
tempVal = (tempVal - 32) * 5 / 9
return 'C'.format(tempVal)
elif tempUnit == 'C':
tempVal = tempVal * 9 / 5 + 32
return 'F'.format(tempVal)
else:
raise ValueError('Temperature unit is not valid.')
print(tempTransform('30.1C'))
# 86.18F
如果输入字符串中的温度值无效或者单位不是'C'或者'F',均会会抛出ValueError。
print '2. Celsius to Farhrenheit'
opt = raw_input('Enter: ')
if opt not in ['1','2']:
print 'Error'
elif opt == '1':
d = raw_input('Tempature in F: ')
try:
if float(d) <= -459.67:
print 'Error'
else:
print round((float(d)-32)/1.8,2)
except ValueError:
print 'Error'
elif opt == '2':
d = raw_input('Tempature in C: ')
try:
if float(d) <= -273.15:
print 'Error'
else:
print round((float(d)*1.8)+32,2)
except ValueError:
print 'Error'
昨天也是你问的问题么?
绝对零度只能无限接近,所以温度不低于 -273.15摄氏度 或者 -459.67华氏度
过滤掉了很多可能错误的输入并提示Error.
本回答被提问者采纳 参考技术B 哈工大的吗?如果是,小心一点,往届的学长说老师也喜欢上百度知道········以上是关于如何用 python编写华氏摄氏度的相互转换?的主要内容,如果未能解决你的问题,请参考以下文章