Python 3.x 如何创建第二个列表来存储每次滚动的值?python

Python 3.x 如何创建第二个列表来存储每次滚动的值?python,python-3.x,Python 3.x,我已经创建了一个python骰子游戏,我想让它记录每个掷骰值 例如,骰子滚动6,3,2,4,5,1,6,4,4,3,2,4直到极限(达到)达到50以下是我的代码: import random throws = 0 sixes = 0 fives = 0 fours = 0 threes = 0 twos = 0 ones = 0 reach = 50 total = 0 question = input ("

我已经创建了一个python骰子游戏,我想让它记录每个掷骰值 例如,骰子滚动6,3,2,4,5,1,6,4,4,3,2,4直到极限(达到)达到50以下是我的代码:

    import random
    throws = 0
    sixes = 0
    fives = 0
    fours = 0
    threes = 0
    twos = 0
    ones = 0
    reach = 50
    total = 0
    question = input ("Play Yes/No")
    if question == "Yes":
        question = True
    else:
        question = False
    while total < reach and question:
         roll = random.randint(1,6)
         throws +=1
         total += roll
         if roll == 6:
            sixes +=1
         elif roll == 5:
            fives +=1
         elif roll == 4:
            fours +=1
         elif roll == 3:
            threes +=1
         elif roll == 2:
            twos +=1
         elif roll == 1:
            ones +=1
         else :
            print("Try again later")
    if question :
        print("Total throws : ",throws)
        print("Total : ",total)
        print("Total 6's : ",sixes)
        print("Total 5's : ",fives)
        print("Total 4's : ",fours)
        print("Total 3's : ",threes)
        print("Total 2's : ",twos)
        print("Total 1's : ",ones)
    else :
        print("Your Loss!")
随机导入
投掷=0
六=0
五=0
四=0
三等于0
twos=0
一=0
到达=50
总数=0
问题=输入(“播放是/否”)
如果问题==“是”:
问题=正确
其他:
问题=错误
而total
要回答您的问题,我如何创建第二个列表来存储每次掷骰时的值,您从一个空数组(
顺序=[]
)开始,然后在每次掷骰后将掷骰附加到数组的末尾(
顺序.附加(掷骰)

您的代码还可以改进其他一些方面

  • 由于骰子卷正在计数,所以使用列表/数组进行计数并增加相应的索引要容易得多
  • 如果您通过保存卷的顺序来跟踪卷,那么您不需要跟踪总和,您可以使用
    sum(order)
  • 如果通过保存卷的顺序来跟踪卷,则不需要跟踪卷的总数,只需使用
    len(order)
  • 如果使用数组而不是单个变量来跟踪计数,则可以将print语句放入for循环
以下是改进的程序:

import random
rolls = [0]*6
order = []
limit = 50

question = input ("Play Yes/No")
if question == "Yes":
    question = True
else:
    question = False
while sum(order) < limit and question:
     roll = random.randint(1,6)
     order.append(roll)
     rolls[roll-1] += 1

if question :
    print("Order of rolls: ", order)
    print("Total throws : ",len(order))
    print("Total : ",sum(order))
    for i in range(len(rolls),0,-1):
        print("Total ", i, "'s : ", rolls[i-1])

else :
    print("Your Loss!")
随机导入
转鼓=[0]*6
订单=[]
限额=50
问题=输入(“播放是/否”)
如果问题==“是”:
问题=正确
其他:
问题=错误
而总和(顺序)<限制和问题:
滚动=随机。随机数(1,6)
订单追加(滚动)
转鼓[转鼓-1]+=1
如有问题:
打印(“卷的顺序:,顺序)
打印(“总投数:”,len(订单))
打印(“总计:,合计(订单))
对于范围内的i(长度(转鼓),0,-1):
打印(“总计”,i,“'s:”,卷[i-1])
其他:
打印(“您的损失!”)

您尝试过什么,出现了什么问题?这对我来说似乎非常简单:创建一个列表,并在每次while循环再次发生时(每次滚动后)添加一些内容。此外,您可以尝试使用一个列表来存储多少个一、两个。。。每个变量都有一个而不是一个不同的变量。它可以使你的程序更短、更漂亮