通过追加在python中填充列表

通过追加在python中填充列表,python,list,append,Python,List,Append,我正在练习初级Python项目,并尝试做掷骰子模拟器,它将所有骰子的总数存储在一个列表中。然而,由于某些原因,它不起作用。有人能解释一下为什么这样的代码可以工作: n=0 a=[] while n<6: n+=1 a.append(n) print(a) 它只是将最后一个总数打印为一个值的列表。我在这里遗漏了什么?按照wnnmaw的建议,将tots=[]移出while循环。按照wnnmaw的建议,在循环之前的count=0下方将tots=[]移出while循环。在循环之

我正在练习初级Python项目,并尝试做掷骰子模拟器,它将所有骰子的总数存储在一个列表中。然而,由于某些原因,它不起作用。有人能解释一下为什么这样的代码可以工作:

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

print(a)

它只是将最后一个总数打印为一个值的列表。我在这里遗漏了什么?

按照wnnmaw的建议,将
tots=[]
移出while循环。按照wnnmaw的建议,在循环之前的
count=0
下方将
tots=[]
移出while循环。在循环之前,在
count=0
下面写下它,您可以在每次迭代中重置列表
tots=[]
,这样它就永远不会容纳多个元素。尝试将其置于while循环之外:

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

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

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

在循环的每次迭代中,您都会将列表重新指定为
[]
。天哪,我真蠢……非常感谢您指出这一点!不,你不是。继续工作;)作为旁注,您的
if…!='y’…
可以是
,而
,以从用户处断言有效值(一直询问,直到答案是
y
n
)。(您可能也可以使用
str.lower
来解释案例问题,因为提示是
Y/N
,但预期的答案是
Y/N
)我可能会再次使用
roll\u=input(…).lower()
,而roll\u不在['Y',N']中:
您将列表重新分配为
[]
循环的每一次迭代。天哪,我真蠢……非常感谢你指出这一点!不,你不是。继续工作;)作为旁注,您的
if…!='y’…
可以是
,而
,以从用户处断言有效值(一直询问,直到答案是
y
n
)。(您可能还可以使用
str.lower
来解释案例问题,因为提示是
Y/N
,但预期答案是
Y/N
)我可能会再次使用
roll\u=input(…).lower()
,而roll\u不在['Y',N']中: