打印出一个randint并将其附加到列表中,然后循环并打印一个完全不同的列表

时间:2015-10-04 22:18:37

标签: python

有人可以向我解释为什么我会继续获得相同的列表而不是更长的列表?

[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 个答案:

答案 0 :(得分:2)

您在程序开头声明x,但听起来您想在每次打印后重置​​它;在x = []循环中移动while行,这样每次输入时,x都会为空。

另外,就像@IlmariKaronen所说的那样,你的代码示例无法运行,因为它是缩进的。据推测它可以在你的最后工作,所以它没有正确粘贴。发布问题时,请确保您的代码示例可以运行。

答案 1 :(得分: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]