2016-10-14 10 views
-3

Я не могу понять, почему raw_input не вызывается, когда я запускаю функцию. Вместо того, чтобы спросил "At bats?" я получаю ошибку ниже:Использование raw_input внутри функций

Traceback (most recent call last): 
    File "ex19a.py", line 9, in <module> 
    Slugging() 
TypeError: Slugging() takes exactly 2 arguments (0 given) 

Я знаю, что два аргумента являются обязательными, но я думал, что я создал функцию для использования raw_input S в качестве аргументов.

Мой код:

def Slugging(At_Bats, Total_Bases): 
    At_Bats = float(raw_input("At bats?")) 
    Total_Bases = int(raw_input("Total Bases?")) 
    Percentage = (At_Bats/Total_Bases) 

    print "Analysing data..." 
    print "Your slugging percentage is %.3f" % Percentage 

Slugging() 
+2

Он будет запущен, если вы успешно вызвали функцию; как говорит вам трасса, ** вы не **. Ваш код выходит из строя, когда он пытается вызвать функцию, потому что вы определили два аргумента, которые вы фактически не передаете (и которые, если вы это сделали, сразу же затеняли при вводе пользователя). – jonrsharpe

ответ

1

Попробуйте удалить параметры из вашей функции откладывая! Ваша текущая ошибка связана с тем, что вы вызываете функцию Slugging с 0 аргументами и она ожидает 2 (At_Bats и Total_Bases).

def Slugging(): 
    At_Bats = float(raw_input("At bats?")) 
    Total_Bases = int(raw_input("Total Bases?")) 
    Percentage = (At_Bats/Total_Bases) 

    print "Analysing data..." 
    print "Your slugging percentage is %.3f" % Percentage 

Slugging() 
+0

Спасибо. Я знал, что это будет глупая ошибка. Я просто смотрел на нее слишком долго. –

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