我在ubuntu 12.04上的python 2.7解释器中得到了错误的结果。 我已经在在线翻译中尝试了这段代码,代码还可以。
#print temperature
kindc = str(raw_input("Please type c for celsius or f for fareneit "))
tempc = float(raw_input("please type the number of degrees you want to convert "))
def result(kind,temp):
if kind == "c":
result1 = float((temp-32)*9/5)
return result1
else:
result1 = float(5/9*(temp-32))
return result1
print result(kindc,tempc)
答案 0 :(得分:2)
在Python 2中,5/9
使用分层,因为两个操作数都是整数。通过使至少一个参数成为float:
result1 = (5.0 / 9.0) * (temp - 32)
Celsius转换很可能不会受此影响,因为(temp - 32) * 9
结果很可能已经是浮点数,但最好在此处保持一致:
result1 = (temp * 9.0 / 5.0) + 32
请注意,您需要在此处使用正确的公式;乘以9后五分后加+ 32
。这两个公式都不需要将结果转换为float()
;输出已经是一个浮点值。
如果您使用的是使用Python 3的在线Python解释器,那么您的代码将起作用,因为/
运算符不是真正的除法运算(总是产生浮点值)。也可能是那个翻译有:
from __future__ import division
import将Python 2切换为Python 3行为。
最后的转换功能是:
def result(kind, temp):
if kind == "c":
result1 = (temp * 9.0 / 5.0) + 32
return result1
else:
result1 = 5.0 / 9.0 * (temp - 32)
return result1
答案 1 :(得分:1)
您希望将摄氏温度转换为华氏温度:
result1 = float(temp)*9/5+32