nining 发表于 2020-7-23 23:26:10

纯萌新,请大家看看这段代码有啥问题,运行不了!


#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
    C = (eval(TempStr - 32)/1.8
    print("转换后温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F = 1.8*eval(TempStr) + 32
    print("转换后温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

Twilight6 发表于 2020-7-23 23:35:45



最后一个括号用成中文的了

C = (eval(TempStr - 32)/1.8 多了个括号,而且 eval 内要纯字符串,而你这里的 32 是整型

TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
    C = eval(TempStr+'- 32')/1.8
    print("转换后温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F = 1.8*eval(TempStr)+32
    print("转换后温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

小黑狼5 发表于 2020-7-24 10:48:28

把 eval内的字符串转换成 浮点数才能与数值32相加减
最后一个print的右括号改为英文括号。
#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
    C = (float(eval(TempStr)) - 32)/1.8
    print("转换后温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F = 1.8*eval(TempStr) + 32
    print("转换后温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

nining 发表于 2020-7-24 17:35:32

太感谢了

nining 发表于 2020-7-24 17:36:38

小黑狼5 发表于 2020-7-24 10:48
把 eval内的字符串转换成 浮点数才能与数值32相加减
最后一个print的右括号改为英文括号。
#TempConvert. ...

太感谢了

小黑狼5 发表于 2020-7-24 17:42:35

nining 发表于 2020-7-24 17:36
太感谢了

悄悄说一句,华氏度的单位应该是开尔文(K)吧。所以是不是 if TempStr[-1] in ['K','k']:    好一点啊,哈哈。
页: [1]
查看完整版本: 纯萌新,请大家看看这段代码有啥问题,运行不了!