2016-01-21 3 views
-2

Я пытаюсь найти решение этой проблемы в течение 2 часов, я не уверен, что набрать такую ​​функцию?Функция преобразования температуры python

num = input ('Which Degree Temperature would you like to convert? ') 
corf = raw_input ('Is the temperature Fahrenheit Degree or is it Celsius?(Type "f" for Fahrenheit or "c" for Celsius)') 
def max(num,corf): 
    if corf == 1 : 
     return num 
     Celsius = (num - 32) * 5.0/9.0 
     print str(num) + " Fahrenheit is equal to " + str(Celsius)+ " Celsius or " + ('%0.1f degrees Celsius ' %(Celsius)) + 'to one decimal place ' 
    elif corf == 2 : 
     return num 
     Fahrenheit = (num * 9.0/5.0) + 32 
     print str(num) + " Celsius is equal to " + str(Fahrenheit)+ " Fahrenheit or " + ('%0.1f degrees Celsius ' %(Celsius)) + 'to one decimal place ' 
    else: 
     return 'Error' 
+1

Что не работает? – Andrey

ответ

1

В каждом if или elif заявление, изменить число в правильной последовательности:

if corf == "f":   
    return num 
    Celsius = (num - 32) * 5.0/9.0 
    print str(num) + " Fahrenheit is equal to " + str(Celsius)+ " Celsius or " + ('%0.1f degrees Celsius ' %(Celsius)) + 'to one decimal place ' 
elif corf == "c": 
    return num 
    Fahrenheit = (num * 9.0/5.0) + 32 
    print str(num) + " Celsius is equal to " + str(Fahrenheit)+ " Fahrenheit or " + ('%0.1f degrees Celsius ' %(Celsius)) + 'to one decimal place ' 

Почему? Потому что единственный вход для corf должен быть только «f» или «c». Теперь каждая запись должна быть сопоставлена ​​с правильным кодом, как показано выше.

+0

Хм ... это одна проблема, другая большая проблема в том, что он возвращает номер, прежде чем он начнет математику. (Также есть проблема, что он скопировал и вставил плохо, затенял встроенный (max) и не показывал его, что часто люди забывают делать) – Foon

Смежные вопросы