2016-06-17 8 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 (len (weaponList))'또는'weapon2 = random.choice (weaponList)' –

+0

@MorganThrapp, 고맙습니다. –

답변

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

이 라인 randint이어야한다 (INT1는 INT2)을 포함, 그래서 모두 번호를 호출 할 수있다 .

인덱스가 0에서 시작되고 weaponList [0]이 0을 얻습니다.이 인덱스는 0 번째 인덱스에 있습니다.

0

파이썬 목록은 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로, 제로 두 random.randint(0,2) 사이의 숫자를 선택해야합니다.

더 깨끗한 해결책은 @Tadhg McDonald-Jensen에 의해 제안되었으며 향후 독자를 위해 추가되었습니다.

weapon2 = random.choice(weaponList) 

weaponList에서 임의의 요소를 선택합니다, 그래서 당신은 심지어 인덱스 투쟁해야 돈`t.

관련 문제