임의의 숫자 1 ~ 3을 생성해야합니다. 내가지고있어 오류가 다음과 같이목록이 범위를 벗어났습니다. 오류가 발생했습니다. Python
IndexError: list index out of range
내 코드입니다 :
weaponList = [0,1,2]
weapon2 = weaponList[random.randint(0,3)]
임의의 숫자 1 ~ 3을 생성해야합니다. 내가지고있어 오류가 다음과 같이목록이 범위를 벗어났습니다. 오류가 발생했습니다. Python
IndexError: list index out of range
내 코드입니다 :
weaponList = [0,1,2]
weapon2 = weaponList[random.randint(0,3)]
weapon2 = weaponList[random.randint(0,2)]
이 라인 randint이어야한다 (INT1는 INT2)을 포함, 그래서 모두 번호를 호출 할 수있다 .
인덱스가 0에서 시작되고 weaponList [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.randint
is inclusive로, 제로 두 random.randint(0,2)
사이의 숫자를 선택해야합니다.
더 깨끗한 해결책은 @Tadhg McDonald-Jensen에 의해 제안되었으며 향후 독자를 위해 추가되었습니다.
weapon2 = random.choice(weaponList)
이
은weaponList
에서 임의의 요소를 선택합니다, 그래서 당신은 심지어 인덱스 투쟁해야 돈`t.
'randint'를 포함하여'(0,2)'를 원합니다. –
또는'random.randrange (len (weaponList))'또는'weapon2 = random.choice (weaponList)' –
@MorganThrapp, 고맙습니다. –