如何用 python编写华氏摄氏度的相互转换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用 python编写华氏摄氏度的相互转换?相关的知识,希望对你有一定的参考价值。

华氏度和摄氏度的转换关系为,℉ = 9×℃ /5+32    或   ℃ = 5×(℉- 32)/9

输入为一个字符串,最后一位为'F'表示输入为华氏度,最后一位为'C'表示输入为摄氏度

输出将自动转换成为相同格式的另一种温度。示例的输入为:'30.1C'、'86F'。

def tempTransform(tempStr):
    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。

参考技术A print '1. Fahrenheit to Celsius'
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编写华氏摄氏度的相互转换?的主要内容,如果未能解决你的问题,请参考以下文章

python中的TempStr应用和温度转换

Mad Libs游戏,华氏与摄氏转换

[Python3 练习] 001 温度转换1

[Python3 练习] 002 温度转换2

Python入门习题1.温度转换

python3 练手实例3 摄氏温度与华氏温度转换