У меня попробовал, чтобы сделать калькулятор преобразования температуры в python. Любая помощь в том, что не так? Я положил 20C
, и это говорит мне, что 20c=52f
, что я знаю, является неправильным. Вот код:Калькулятор температуры не выводит правильную температуру?
def convert(changeto,temp):
if changeto == "c":
converted = (5/9)*(temp-32)
print '%d C = %d F' % (temp,converted)
elif changeto == "f":
converted = (9/5)*(temp+32)
print '%d F = %d C' % (temp, converted)
else:
print "Error, type C or F for Celsius or Fahrenheit conversions."
print "Temperature Converter"
temp = float(raw_input("Enter a temperature: "))
changeto = str(raw_input("Convert to (F)ahrenheit or (C)elsius? "))
convert(changeto,temp)
raw_input("Any key to exit")
9/5 всегда 1 .... попробуйте 9/5.0 вместо –
В дополнение к полученной плавающей запятой, вы добавляете 32 до умножения при переходе от C к f. Это должно быть '(9/5.0 * temp) + 32'. (Или '9/5.', но мне нравится явное' 0' в качестве напоминания.) Или, если вам нужна целая математика (усечение любой десятичной части), '((9 * temp)/5) + 32' и '(5 * (temp - 32))/9'. Parens добавил для ясности. –
@PeterDeGlopper Спасибо! Это исправило это. Я просто скопировал формулу, которую я нашел на веб-сайте проблемы начинающего питона, и не думал дважды о своей математике. Лень снова укусила меня в задницу, хорошо. – Ace