2015-10-04 19 views
-1

有人可以向我解釋爲什麼我一直得到相同的列表但更長,而不是新的?打印出一個randint並將它追加到一個列表中,然後循環並打印一個完全不同的列表

[20][20, 14][20, 14, 16],[20, 14, 16, 18]

,但我試圖讓:

[20][15, 18][13, 19, 20][17, 14, 17, 20]

import random 
x=[] 
a=0 
while a < 5: 
    i=0 
    q = 1 
    while i < q: 
     s=random.randint(10, 20) 
     i+=1 
     x.append(s) 
    print(x) 
    q+=1 
    a+=1 

我想通過學習Python製作小腳本,但這讓我陷入困境。 請幫忙

+2

你縮進全亂了,這就是Python有種不好的。這永遠不會運行。請修復它。 –

回答

0

試試看。我重新安排了一些東西,如將列表創建x=[]移動到您的外部while循環中,並將您的q=1移動到外部while循環外部。

import random 
a=0 
q = 1 
while a < 5: 
    i=0 
    x=[] 
    while i < q: 
     s=random.randint(10, 20) 
     i+=1 
     x.append(s) 
    print(x) 
    q+=1 
    a+=1 

輸出:

[18] 
[15, 17] 
[13, 13, 15] 
[10, 12, 10, 11] 
[20, 12, 20, 11, 11] 
2

您在程序開始時聲明瞭x,但聽起來您想在每次打印後重置​​它;在while循環內移動您的x = []行,以便每次輸入時,x開始爲空。

此外,就像@IlmariKaronen說的那樣,您的代碼示例無法運行,因爲它是縮進的。據推測,它在你的目的下工作,所以它沒有正確粘貼。確保您的代碼示例在發佈問題時可以運行。