通过append在python中填充列表

时间:2014-06-11 18:50:01

标签: python list append

我正在练习初学者Python项目并尝试做骰子滚动模拟器,它将所有骰子的总数存储在列表中。但是,它由于某种原因不起作用。有人可以解释为什么这样的代码有效:

n=0
a=[]
while n<6:
    n+=1
    a.append(n)

print(a)

并生成[1,2,3,4,5,6],但此代码不会:

import random
maxnum=6
minnum=1
roll_again="y"
count=0
while roll_again=="y":
    tots=[]
    print("rolling the dice...")
    roll1=(random.randint(minnum,maxnum))
    roll2=(random.randint(minnum,maxnum))
    count+=1
    total=roll1+roll2
    print(roll1, roll2)
    print("Try #",count, ": Total = ", total,"\n")    
    roll_again=input("Roll the dice again? Y/N    ")
    if roll_again!="y" and roll_again!="n":
        print("please enter 'y' for yes or 'n' for no")
        roll_again=input("Roll the dice again? Y/N    ")
    tots.append(total)

print(tots) 

它只是将最后一个总数打印为具有一个值的列表。我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

如同wnnmaw建议的那样,将tots = []移出while循环。在循环之前,count=0下面写下它。

答案 1 :(得分:3)

在每次迭代中重置列表tots=[],以便它永远不会容纳多个元素。试着把它放在while循环之外:

tots=[]
while roll_again=="y":
    ...
    tots.append(...)
print(tots)