2015-12-07 2 views
0

Это должно быть последней ошибкой я получаюWind Chill Калькулятор и математические формулы в определениях

velocity = wind_speed * 0.16 
TypeError: can't multiply sequence by non-int of type 'float' 

какие-либо идеи? довольно уверен, что мне нужно определить ввод как float, Извините, я все еще новичок в python.

def calc_wind_chill(f_temp, wind_speed): 
    """ float, float -> float 
    returns wind_chill_temperature (F) 
    given farenheit temperature and 
    wind_speed in miles per hour 
    """ 
    velocity = wind_speed * 0.16 
    chill = 35.74 + (0.6215 * f_temp)-(35.75 * velocity) +(0.4275 * f_temp * velocity) 

    return chill 
#end def 



while True: 
    question=input("w for windchill or q for quit: ") 
    if question=="w": 
     temperature=input("Air tempature in Fahrenheit: ") 
     wind=input("What is the windspeed in mph: ") 
     calc_wind_chill(temperature, wind) 
     print("Wind Chill", chill, " F", temperature, "F ", "wind speed:", wind) 
     wind_chill_2= calc_wind_chill(temperature, wind +10) 
     print("wind Chill:", wind_chill_2, " F", temperature, "F ", "wind speed:", wind + 10) 

    elif question=="q": 
     print("have a nice day!") 
     break 
+0

Проверьте отступы, что 'return' заявление. –

+0

Кроме того, эти 'float (" ... ")' в 'input'-вызовах, это не имеет смысла. –

+0

Вы правы относительно оператора возврата, но он по-прежнему дает ту же ошибку –

ответ

2

Все внутри функции, в том числе комментарии, необходимо отступом ...

def calc_wind_chill(f_temp, wind_speed): 
    """ float, float -> float 
    returns wind_chill_temperature (F) 
    given farenheit temperature and 
    wind_speed in miles per hour 
    """ 
    velocity = wind_speed ** 0.16 
    chill = 35.74 + (0.6215 * f_temp)-(35.75 * velocity) +(0.4275 * f_temp * velocity) 

    return chill 
+0

* head slap * это то, что я получаю для копирования вставки из моей старой работы –

+0

@JeremyBradley происходит со всеми. – TriHard8

+0

@JeremyBradley, как сказал Catalin в комментариях, вы должны иметь 'temperature = float (input (...))' b/c input возвращает строку, поэтому вам нужно преобразовать ее в какой-то номер для выполнения математических вычислений. – TriHard8