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

 我来答
日TimE寸
推荐于2017-09-30 · TA获得超过9568个赞
知道大有可为答主
回答量:1358
采纳率:83%
帮助的人:479万
展开全部

华氏度和摄氏度的转换关系为,℉ = 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。

野人拆
推荐于2017-09-01 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:562万
展开全部
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.

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-07
展开全部
哈工大的吗?如果是,小心一点,往届的学长说老师也喜欢上百度知道········
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式