2016-06-17 5 views
-1

乱数1〜3を生成する必要があります。私は取得していますエラーがリストが範囲外のエラーを修正しています。 Python

IndexError: list index out of range

私のコードで、次のとおりです。

weaponList = [0,1,2] 
weapon2 = weaponList[random.randint(0,3)] 
+3

'randint'はインクルーシブで、'(0,2) 'が必要です。 –

+2

または 'random.randrange(weaponList))'または単に 'weapon2 = random.choice(weaponList)' –

+0

ありがとう@MorganThrapp、私が探していたthats。 –

答えて

0
weapon2 = weaponList[random.randint(0,2)] 

ライン randint(INT1、INT2)すべきは含まれており、その両方の数を呼び出すことができます。

インデックスは0から始まり、weaponList [0]を呼び出すとゼロが得られます。これは0番目のインデックスにあります。

0

Pythonリストはzero indexedです。あなたの例では:

>>> weaponList = [0,1,2] 
>>> weaponList[0] 
0 
>>> weaponList[1] 
1 
>>> weaponList[2] 
2 
>>> weaponList[3] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: list index out of range 

はそのため、あなたはrandom.randintis inclusiveとして、ゼロと2 random.randint(0,2)の間の数字を選択する必要があります。

@Tadhg McDonald-Jensenによって提案されたよりクリーンなソリューションが、将来の読者のためにここに追加されました。

weapon2 = random.choice(weaponList) 

これはweaponListからランダムに要素を選択しますので、あなたもインデックスと格闘しなければならない `tの。

関連する問題