2017-02-14 12 views
0

私はコードを実行するとエラーが発生します。これはTypeError: game() missing 1 required positional argument: 'x'とエラーが発生し、ユーザーが入力したガースを追跡したいので、私はbobjects()に宣言すれば、リストを宣言することに疑念がある。game()でそのリストを使用することはできない。私はこれを解決するためにいくつかの助けが必要です。TypeError:game()missing 1必要な位置引数: 'x'

def objects(): 
import random 
x=random.randint(1,9) 
game(x) 
def game(x): 
b=[] 
a=int(input('Enetr the number between 1 and 9')) 
b.append(a) 
print ('till now you have entered ') 
print(b) 

if a==x: 
    print('Correct guess') 
    b=input('Do you want to do it again if not then press exit') 
    if b=='exit': 
     exit 
    else: 
     objects() 
elif a>x: 
    print('too big') 
    game() 
else: 
    print ('too small') 
    game() 
+2

の要旨はあなたのインデントを修正thatsの者は、ループアプローチ

def run_game(): def game(): # set up x and b here guess = None # that way guess won't equal x the first time around while guess != x: guess = int(input('Enetr the number between 1 and 9')) b.append(guess) print ('till now you have entered ') print(b) # do the guessing logic # play again? # yes game() game() 

ながら+無引数を取りませんしましょう。 2番目の 'game()'関数は1つの引数をとり、スクリプトの最後に 'game()'を呼び出しています....ちょうど 'game(x)'の呼び出しを終了します – MooingRawr

+1

再帰の代わりに 'while'ループその中のロジックを実行します。 – metmirr

+0

はい@MooingRawrスクリプトの最後に 'game(x)'を実行すると正しく動作しています。そして、あなたが 'game(x)'を呼び出すと、リストが再び空になるので、リスト 'b 'を宣言しても助けてくれますか? –

答えて

0

あなたはdef game(x):としてゲームを定義したが、それは引数を必要とする: はここに私のコードです。引数を持たないgame()でそれを呼び出します。

また、Pythonはインデントを気にします。

あなたはおそらくどちらかがx doesntの変更場合は引数なしでgameを定義して、体内にxを設定し、whileループを使用するか、または関数呼び出しでgame(x)を呼びたいです。

はあなたがここにいくつかの改善を行うことができますが、それはあなたのスクリプトに表示されるように

+3

OPを提案して、なぜ彼が何をしたいのか、それをやる。 – MooingRawr

+0

ああ、私はその行を見逃しました... oops – marisbest2

+0

が編集されました。私の悪い... – marisbest2

関連する問題