我有一長行代碼,為圖形列印一堆符號,我剛剛開始得到一個索引超出范圍的錯誤。它在一個函式內,這是重要的代碼:
在頂部,在 imports(fr termcolor cprint, colored , time, os, random) 之后
rannum = random.ranrange(1,20, 1)
該函式:
def obstacle() 。
rocknum = random.randrange(0,12, 1)
rock = ["on_cyan","on_cyan","on_cyan", "on_cyan","on_cyan","on_cyan"。 "on_cyan","on_cyan","on_cyan"。 "on_cyan","on_cyan","on_cyan"]
rock[rocknum]= "on_cyan"]
ongroundls = [" "," "," ", " "," "," "," ", " "," "," "," ", " "," "," "," ", " "," "," "," ", " "," "," "," ", " "," "," "," ", " "," "," ","] #runframe 1 list[/span
pos = rannum
#print(rannum)/span>
if rannum == random.ranandrange(0,20,1) 。
#print(rannum, pos)
ongroundls[rannum] = "4"。
rock[rocknum] = "on_yellow"/span>
else:
rock[rocknum] = "on_cyan".
#print(colored(ongroundls[0], "gray", "on_cyan") colored(ongroundls[1], "gray", "on_cyan") colored(ongroundls[2], "gray", "on_cyan")。 "灰色", "on_cyan") colored(ongroundls[4], "灰色", "on_cyan") colored(ongroundls[5], "灰色", "on_cyan") colored(ongroundls[6], "灰色", "on_cyan")。 "灰色", "on_cyan") colored(ongroundls[8], "灰色", "on_cyan") colored(ongroundls[9], "灰色", "on_cyan") colored(ongroundls[10], "灰色", "on_cyan") colored(ongroundls[11] 。 "灰色", "on_cyan") colored(ongroundls[12], "灰色", "on_cyan") colored(ongroundls[13], "灰色", "on_cyan") colored(ongroundls[14], "灰色", "on_cyan") colored(ongroundls[15], "灰色", "青色") colored(ongroundls[16], "灰色", "青色") colored(ongroundls[17], "灰色", "青色") colored(ongroundls[18], "灰色", "青色") colored(ongroundls[19], "灰色",巖石[0]) colored(ongroundls[20], "灰色",巖石[1]) colored(ongroundls[21], "灰色",巖石[2]) colored(ongroundls[22], "灰色",巖石[3]) colored(ongroundls[23], "灰色" 。 rock[4]) colored(ongroundls[24], "gray",rock[5]) colored(ongroundls[25], "gray",rock[6]) colored(ongroundls[26], "gray",rock[7]) colored(ongroundls[27], "gray" 。 rock[8]) colored(ongroundls[28], "gray",rock[9]) colored(ongroundls[29], "gray",rock[10]) colored(ongroundls[30], "gray",rock[11]) colored(ongroundls[31], "gray", rock[12])
while pos > 19:
ongroundls[pos] = "#".
pos - 1
if pos == random.randrange(0, 32, 1) 。
pos == 隨機
print(colored(ongroundls[0],"grey", "on_cyan") colored(ongroundls[1],"grey", "on_cyan") colored(ongroundls[2],"grey", "on_cyan") colored(ongroundls[3],"grey", "on_cyan") colored(ongroundls[4],"grey", "on_cyan") colored(ongroundls[5],"grey", "on_cyan") colored(ongroundls[6],"grey", "on_cyan") colored(ongroundls[7],"grey", "on_cyan") colored(ongroundls[8],"grey", "on_cyan") colored(ongroundls[9],"grey", "on_cyan") colored(ongroundls[10],"grey", "on_cyan") colored(ongroundls[11],"grey", "on_cyan") colored(ongroundls[12],"grey", "on_cyan") colored(ongroundls[13],"grey", "on_cyan") colored(ongroundls[14],"grey", "on_cyan") colored(ongroundls[15],"grey", "on_cyan") colored(ongroundls[16],"grey", "on_cyan") colored(ongroundls[17],"grey", "on_cyan") colored(ongroundls[18],"grey", "on_cyan") colored(ongroundls[19],"grey", rock[0]) colored(ongroundls[20],"grey", rock[1]) colored(ongroundls[21],"grey", rock[2]) colored(ongroundls[22],"grey", rock[3]) colored(ongroundls[23],"grey", rock[4]) colored(ongroundls[24],"grey", rock[5]) colored(ongroundls[25],"grey", rock[6]) colored(ongroundls[26],"grey", rock[7]) colored(ongroundls[27],"grey", rock[8]) colored(ongroundls[28],"grey", rock[9]) colored(ongroundls[29],"grey", rock[10]) colored(ongroundls[30],"grey", rock[11]) colored(ongroundls[31],"灰色",rock[12] )
在while回圈中(緩沖區只是一個小的延遲和一個os.system('cls')
obstacle()
緩沖區()
rannum = random.randrange(1,20, 1)
它本來作業得很好,然后我做了一些小的改動,我似乎不能解決這個問題。我已經嘗試改變范圍,有些東西被注釋掉,試圖解決這個問題。因此,數字已經不是問題開始時的樣子了。我可以做些什么來解決這個問題呢?
uj5u.com熱心網友回復:
你的問題是最后一行。你在print的最后硬編碼了rock[12],但是rock只有12個元素,所以最后的有效索引是11。
正如我在評論中指出的,即使你解決了這個問題,代碼也是錯誤的;你的while回圈要么永遠不會運行,要么永遠不會退出,因為你從來沒有在回圈中改變pos(pos - 1計算一個新的值,但從未存盤它;pos -= 1也許就是這個意圖)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309283.html
標籤:
上一篇:如何在R中正確地對資料框架進行范圍劃分,以便與函式中的公式一起使用
下一篇:嵌套函式中缺失的引數
