Как вывести уникальные значения из каждого для l oop? - PullRequest
0 голосов
/ 06 апреля 2020

Отказ от ответственности; Я взял Python в неделю за go или около того, так что извините меня за любой плохой синтаксис и тому подобное.

Я попытался выполнить небольшую программу в Python, которая бросает 6 кубиков и продолжает идти, пока не получит 6 шестерок. Затем он подсчитывает количество необходимых рулонов. Однако все прошло хорошо, я решил позволить пользователю самим решать, сколько раз этот процесс повторяется, и добавлять каждое количество бросков, необходимое в список.

Моя проблема в том, что если я, например, позволю программа запускается 3 раза, список в конце содержит последнее количество бросков, необходимое 3 раза, вместо 3 уникальных значений.

import random as rd

rollsum = 0
rollno = 0
n=int(input("How many times do you want to roll 6 sixes?"))
g=[]

for _ in range(n):
    while rollsum != 36:
        a, b, c, d, e, f = (rd.randint(1, 6) for k in range(6))  # The die get assigned a random value between 1 and 6
        rollsum = a + b + c + d + e + f  # The sum of the die is calculated
        rollno += 1  # The number of rolls is increased by 1
        print()
        print("Roll:", a, b, c, d, e)  # Prints the value of each of the 6 die
        print("Sum:", rollsum)  # Prints the sum of the 6 sie
        print("Roll number:", rollno)  # Prints the number of rolls
    g.append(rollno)

print(g)    

1 Ответ

1 голос
/ 06 апреля 2020
import random as rd

n=int(input("How many times do you want to roll 6 sixes?"))
g=[]

for i in range(n):
    rollno = 0
    rollsum = 0
    while rollsum != 36:
        a, b, c, d, e, f = (rd.randint(1, 6) for k in range(6))  # The die get assigned a random value between 1 and 6
        rollsum = a + b + c + d + e + f  # The sum of the die is calculated
        rollno += 1  # The number of rolls is increased by 1
        print()
        print("Roll:", a, b, c, d, e)  # Prints the value of each of the 6 die
        print("Sum:", rollsum)  # Prints the sum of the 6 sie
        print("Roll number:", rollno)  # Prints the number of rolls
    g.append(rollno)

print(g)    

Причина, по которой ваш код был неудачнее, состоит в том, что после первого раза, rollsum равнялся 36, и поэтому он не вошел во внутреннюю l oop. Во-вторых, rollno сохранил предыдущий счет. Таким образом, мое изменение состояло в том, чтобы инициализировать как во внешнем l oop, а не снаружи.

...