2017-10-18 16 views
-1

私は学校プロジェクトのために岩、紙、はさみロボットを書いています。私はタイトル(TypeError: randint() takes 3 positional arguments but 4 were given)にエラーが表示され続けているのですが、その理由はわかりません。私のコードは以下の通りです。TypeError:randint()は3つの位置引数をとりますが、4つは与えられました

if userInput : 'rock' 
choice = random.randint(1,2,3) 
if choice == 1: 
    await client.send_message(message.channel, embed=RockEmbed) 

elif choice == 2: 
    await client.send_message(message.channel, embed=PaperEmbed) 

elif choice == 3: 
    await client.send_message(message.channel, embed=ScissorsEmbed) 

if userInput : 'scissors' 
choice2 = random.randint(1,2,3) 
if choice2 == 1: 
    await client.send_message(message.channel, embed=RockEmbed) 
elif choice2 == 2: 
    await client.send_message(message.channel, embed=PaperEmbed) 
elif choice2 == 3: 
    await client.send_message(message.channel, embed=ScissorsEmbed) 

if userInput : 'paper' 
choice3 = random.randint(1,2,3) 
if choice3 == 1: 
    await client.send_message(message.channel, embed=RockEmbed) 
elif choice3 == 2: 
    await client.send_message(message.channel, embed=PaperEmbed) 
elif choice3 == 3: 
    await client.send_message(message.channel, embed=ScissorsEmbed) 

私は、私の構文が100%正しいですが、ないかなり確信して明らかに3つの引数ではなく、4である、random.randint(1,2,3)を言いました。

+1

'random.randint()'はメソッドの1つで、引数の1つとしてカウントされる 'self'引数を持つことに注意してください。 3つの引数を渡すと、合計で4になります。 [引数のドキュメント](https://docs.python.org/3/library/random.html#random.randint)を読んで、どの引数が受け入れられるかを確認してください。 –

+1

その理由は、その品質フィルタです。あなたの回避策は評価されません。その多くのコードを投稿する必要はありませんでした。 'random.randint(1,2,3)'はすでにエラーを示しています。 –

+0

私がリンクしているドキュメントは、関数が何をしているかについてかなり明確です。 3つの引数を渡すことはできません。 'random.randint(1,3)'を使うか 'random.choice([1、2、3])'を使う。 –

答えて

0

random.randintは、開始と終了の2つの引数しかとりません。 Pythonで言及された3番目の引数はselfで、自動的に行われます。

1から3までの数値を選択するには、random.randint(1,3)を入力します。

これらのifステートメントは意味を成さない。

関連する問題