2017-10-08 19 views
0

私はPythonの初心者です。関数を使用して本質的に "占い師"であるプログラムを作成しようとしています。私は月の日の入力フォームを取得し、それを整数として返すように記述された関数get_today()を呼び出すときに問題があるようです。私は、関数を呼び出すとき関数を呼び出そうとするとエラーが発生する

は、しかし、私は行くのエラーが表示午前:私は少し周りを演奏してみた、これが何を意味するのかを把握することはできません

TypeError: get_today() missing 1 required positional argument: 'd' 

。ここでは主な機能は次のとおりです。

def main(): 

    print("Welcome​ ​to​ ​Madame​ ​Maxine's​ ​Fortune​ ​Palace. Here,​ ​we​ ​gaze​ ​deeply into​ ​your​ ​soul​ ​and​ ​find​ ​the secrets​ ​that​ ​only​ ​destiny​ ​has​ ​heretofore​ ​known!") 
    print("") 
    print("The​ ​power​ ​of​ ​my​ ​inner​ ​eye​ ​clouds​ ​my​ ​ability​ ​to​ ​keep track​ ​of mundane​ ​things​ ​like​ ​the​ ​date.") 
    d = get_today() 
    print("Numerology​ ​is​ ​vitally​ ​important​ ​to​ ​fortune​ ​telling.") 
    b = get_birthday() 

    if(d >=1 and d <= 9): 
     print("One more question before we begin.") 
     a = likes_spicy_food() 
     print("I will now read your lifeline") 
     read_lifeline(d,b,a) 
    if(d >= 10 and d <= 19): 
     print("I will now read your heartline.") 
     read_heartline(d,b) 
    if(d >= 20 and d <= 29): 
     print("I need one last piece of information.") 
     m = get_birthmonth() 
     read_headline(b,m) 

    if(d == 30 or d == 31): 
     print("Today is a bad day for fortune telling.") 

     print("These insights into your future are not to be enjoyed or dreaded, they simply come to pass.") 
     print("Good day.") 

main() 

この問題は、おそらく第2の機能get_birthday()は、彼らが生まれた月の日のためにユーザーに確認され、呼び出されたときに繰り返されます。ここで

は)(get_todayためのコードスニペットです:

def get_today(): 

     x = int(input("Tell​ ​me,​ ​what​ ​day​ ​of​ ​the​ ​month​ ​is​ ​it​ ​today:​")) 

     return x 

ヘルプは、大規模いただければ幸いです!

+1

は一つの引数を取るget_today'、関数 'しかし、ときにすべてはそれ'でmain'について、あなたはそれを任意の引数を与えることはありません。 'get_today'の引数が実際には必要ないように見えるので、' def get_today(d) 'の' d'を削除してください: ' – jss367

+0

' get_today'を呼び出すときに引数を渡していないとき最初に... – toonarmycaptain

+0

dを削除すると新しいエラーが表示されるTypeError:get_today()が見つからない1必要な位置引数: 'd'' – dezz

答えて

1

このコードをそのまま実行すると、エラーが表示されません。しかし、d = get_today()d = get_today(d)としてこのコードを実行すると、mainの下にエラーが表示されます。

関数を呼び出すと、関数に渡されるものが括弧の間に入ります。 dがまだ割り当てられていないので、それを渡すことはできません。さらに、関数はすべてユーザー入力であるため、渡す変数は必要ありません。

これを試してみてください:

def main(): 
    #code 
    d = get_today() 
    #more code 

def get_today() 
    #the function with return statement 

main() 
+0

dを削除すると新しいエラーが表示されるTypeError:get_today()missing 1必要な位置引数: 'd'' – dezz

+0

' def get_today() 'から' d'を削除しましたか? –

+0

はい、元の質問に編集内容が表示されます。 @Brandon Molyneaux – dezz

関連する問題