[英]"IndexError: list assignment index out of range" assigning to an index in an empty list
#all leter are MAG
#E->3 A->4 O->0 V->W I->2
#rand ASCII with ch
from random import randint
letterNum=randint(4,8)
word=[]
if len(word)==0:
faseLetter=chr(randint(65,90))
word[0]=faseLetter
voc=['A','E','O','U','Y','I']
for i in range (letterNum+1):
firstLetter=word[letterNum]
randomChangeMaker=randint(1,2)
if firstLetter in ['A','E','O','U','Y','I']:
faseLetter=chr(randint((66,68),(70,72),(74,78),(80,88),(90)))
if faseLetter == 'W' and randomChangeMaker == 2:
faseLetter='V'
else:
faseLetter=chr(randint(65,90))
if faseLetter == 'E' and randomChangeMaker == 2:
faseLetter='3'
elif faseLetter == 'A' and randomChangeMaker == 2:
faseLetter='4'
elif faseLetter == 'O' and randomChangeMaker == 2:
faseLetter='0'
elif faseLetter == 'V' and randomChangeMaker == 2:
faseLetter='W'
elif faseLetter == 'W' and randomChangeMaker == 2:
faseLetter='V'
elif faseLetter == 'I' and randomChangeMaker == 2:
faseLetter='2'
word=word+faseLetter
print(word)
那是我的代碼,我收到了這個錯誤(我正在使用 replit.com 編輯器)
回溯(最近調用最后):文件“main.py”,第 10 行,在 word[0]=faseLetter IndexError 中:列表分配索引超出范圍
您的問題可以簡化為
>>> word = []
>>> word[0] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
來自可變序列類型
s[i] = x item i of s is replaced by x
這里的關鍵是“替換”。 該項目必須存在才能被替換。 相反,您可以撥打 append
word.append(1)
嗯, word
是空的,所以你不能給它的第零個成員分配任何東西,因為沒有這樣的成員。 (JavaScript 可能會讓你這樣做,但那對你來說是 JavaScript,嗯?)
任何一個:
word.append(faseLetter)
到空列表而不是word[0] = faseLetter
,所以它變成一個長度為 1 的列表word
,即word = [None]
而不是word = []
,這樣您就可以分配給第零個成員。數組字的長度是多少? 參考第 10 行,你說 word[0]=faseletter.. 但由於你沒有啟動數組字長,所以你不能這樣做。 在這種情況下,您必須使用 append。
弄清楚這些。
letterNum被分配了一個介於 4 到 8 之間的值。
word.append(faseLetter)在第 0個索引處附加一個字母。
在for 循環中firstLetter=word[letterNum]
(考慮到 letterNum 在 4-8 之間)它總是會給出錯誤,因為列表單詞的長度只是一個,而word[letterNum]試圖獲取元素形式的索引,它不會退出。
faseLetter=chr(randint((66,68),(70,72),(74,78),(80,88),(90)))
會報錯如下
randint() 取 3 個位置 arguments 但給出了 6 個
因為
random.randint 只需要兩個 arguments,一個開始和一個結束。 Python提到的第三個參數是self,它是自動完成的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.