我正在练习初学者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)
它只是将最后一个总数打印为具有一个值的列表。我在这里缺少什么?
答案 0 :(得分:3)
如同wnnmaw建议的那样,将tots = []
移出while循环。在循环之前,count=0
下面写下它。
答案 1 :(得分:3)
在每次迭代中重置列表tots=[]
,以便它永远不会容纳多个元素。试着把它放在while循环之外:
tots=[]
while roll_again=="y":
...
tots.append(...)
print(tots)