2013-06-09 4 views
0

Я работаю над преобразователем температуры python. Он преобразует Фаренгейта в Цельсий и наоборот. Я еще не добавил никаких утверждений if или функцию Цельсия до Фаренгейта. Но у меня возникают проблемы с этим Фаренгейта в градусы Цельсия функции,Преобразователь температуры Python

def F_C(x): 
    x = raw_input("Please Enter A Value") 
    x = int(x) 
    x - 32 
    x * 0.55 

answer = F_C(x) 
print x 

по какой-то причине, он принимает только число и делит его пополам. Если кто-нибудь может мне помочь, я бы очень признателен. Спасибо в Advance

+0

Вам необходимо вернуть значение из вашей функции. – BrenBarn

+0

Ваш код должен поднять 'NameEror', что вы имеете в виду, разделив его пополам? –

+0

Это может не иметь большого значения, но 0,55 для 5/9 даже не верны до 2 знаков после запятой. –

ответ

2

Вы не возвращаете значение. Кроме того, вы не хранить все вычисленные значения обратно в переменную x

def F_C(x): 
    x = raw_input("Please Enter A Value") 
    x = int(x) 
    x = x - 32 
    x = x * 0.55 
    return x 

Вы можете упростить его:

def F_C(): 
    x = raw_input("Please Enter A Value") 
    return (int(x) - 32)*0.55 
+0

+1 ты избил меня 23 секунды :) и ты был прав относительно оператора. Спасибо – furins

+0

Не нужно иметь вход x функции. – dansalmo

+0

Большое спасибо за ответ, он отлично работал. – emufossum13

0

сделать это:

def F_C(): 
    x = raw_input("Please Enter A Value") 
    x = int(x) 
    x = x - 32 
    x = x * 0.55 
    return x 

becuase ты просто назначая умноженную переназначение x

или сделать это:

def F_C(): 
    x = raw_input("Please Enter A Value") 
    x = int(x) 
    x = (x - 32)*0.55 
    return x 

print F_C() 

вам не нужно х becuase х извлекается внутри функции, так что вам не нужно, чтобы положить его в качестве атрибута, и вы должны что-то вернуть из функции

также вы можете использовать input intsead из raw_input затем вам не нужно преобразовывать его в int becuase raw_input возвращает строку, а input возвращает целое число или поплавок

Удача с остальными!

+0

'F_C (x)' и 'print x' будут иметь ошибки имен. – dansalmo

+0

исправлено это я думаю – Serial

+0

'def F_C (x)' должен быть 'def F_C()'. Входное значение не используется функцией, функция получает входные данные из 'raw_input (...)' – dansalmo

0

Ваша формула неправильная. Нет необходимости вводить вашу функцию. Вам нужно вернуть окончательное значение.

def F_C(): 
    '''Prompts user for Fahrenheit input, returns Celsius''' 
    f = int(raw_input("Please enter a Fahrenheit value: ")) 
    return (f - 32) * 5./9 

>>> print F_C() 
Please enter a Fahrenheit value: -40 
-40.0 
Смежные вопросы