2016-10-14 5 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) 

は、私は2つの引数が必要であることを知っているが、私は、引数として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

正常に関数を呼び出すと実行されます。トレースバックがあなたに言うように、**あなたは**ではありません。あなたが実際に渡されない2つの引数を定義しているため(そして、渡した場合は、すぐにユーザ入力を嫌う)、関数を呼び出そうとするとあなたのコードは失敗します。 – jonrsharpe

答えて

1

あなたの長打関数からパラメータを削除してください!現在のエラーは、0引数でSlugging関数を呼び出すため、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

ありがとうございます。私はそれが愚かな間違いであることを知っていた。私はちょうどそれをあまりにも長く見ていた。 –

関連する問題