2017-02-02 2 views
-3

кодкак мне написать тестовый код? почему он возвращает мне террор?

def minutes_to_years_days(minutes): 
    ydec=minutes/60/24/365 
    y=int(ydec) 
    ddec=(minutes-y*365*24*60)/60/24 
    d=int(ddec) 
    return (y,d) 

, когда я писал ее как часть тестового кода, я сделал это:

minutes= raw_input('Enter the number of minutes: ') 
def minutes_to_years_days(minutes): 
    ydec=minutes/60/24/365 
    y=int(ydec) 
    ddec=(minutes-y*365*24*60)/60/24 
    d=int(ddec) 
    sentence= '{} is approximately {} years and {} days.'.format(minutes,y,d) 
print minutes_to_years_days() 

но сказал мне, что TypeError: minutes_to_years_days() занимает ровно 1 аргумент и 0 дал , им путать TT

+1

Когда вы его вызываете, вам нужно указать значение 'minutes_to_years_days'. У вас есть «минуты» как обязательный параметр, но вы не передаете это значение. – X33

+1

Ваша функция принимает аргумент ('minutes'), но в нижней строке вы вызываете его без передачи каких-либо аргументов. – Evert

+1

, даже после того, как вы сделаете это изменение ... он ожидает, что минуты будут численными, но raw_input даст вам str .... также его проще входить 'minutes-> hours; hours-> days; days-> years' –

ответ

1

Вы получаете TypeError, потому что на линии:

print minutes_to_years_days() 

вы предоставите нулевые аргументы для этой функции.

надо заменить т.е.

print minutes_to_years_days(2000) 

и вы получите какой-то результат от вашей функции.

+0

Можно ли записать его как print minutes_to_years_days (raw_input)? –

+0

Да, но вы должны обернуть его внутри 'int()' –

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