Как мне вычислить общее и среднее значение всех бросков кубиков?

#python

#python

Вопрос:

Я на 100% новичок в программировании. Это мой первый семестр в IT, и Python имеет для меня 0% смысла. Это задание, которое мне дали:

Закодируйте эту программу как оператор while, затем создайте ее во второй раз как оператор for

Спросите пользователя, сколько раз он будет бросать 2 кубика. Имитируйте многократный бросок кубиков, генерируя 2 случайных числа от 1 до 6 Сразу после каждого броска, отображая общее количество бросков после всех бросков вычислите и отобразите: -общее количество всех бросков — среднее значение всех бросков

Используйте значимые имена переменных В комментариях к основным разделам вашего кода и любым строкам, которые не требуют пояснений

Вывод вашей программы должен выглядеть следующим образом:

Сколько раз вы будете бросать кости? 2 Вы бросили 1 и 5 Вы бросили 3 и 6 Ваша общая сумма для всех бросков равна 15, среднее значение для всех бросков равно 7,5

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

 from random import randint

numRolls= int(input("How many times will you roll the dice? "))

for diceRolls in range(numRolls):
    d1 = randint(1,6)
    d2 = randint(1,6)
    print("You rolled a", d1, "and a",d2)
    
print("Your total for all of the rolls is", )

print("Your average for all of the rolls is", )
 

Комментарии:

1. 1. Как вы вычисляете общее (= сумму) двух чисел (бросок ваших двух кубиков) и как вы его отображаете? 2. Как вы сохраняете общее количество (= сумму) всех бросков кубиков (или любое число)? 3. Как вы вычисляете среднее значение числа?

Ответ №1:

Без использования списков и дополнительной памяти:

 from random import randint


numRolls = int(input("How many times will you roll the dice? "))
s = 0

for roll in range(numRolls):
    d1 = randint(1, 6)
    d2 = randint(1, 6)
    s  = d1   d2
    print("You rolled a", d1, "and a", d2)
    
print("Your total for all of the rolls is", s)
print("Your average for all of the rolls is", s / numRolls)
 

Ответ №2:

Вы можете использовать список для хранения данных. Вы также можете использовать функцию sum для получения суммы всех значений в списке и использовать sum(allDiceRolls)/len(allDiceRolls) для получения среднего

Код:

 from random import randint

numRolls = int(input("How many times will you roll the dice? "))

allDiceRolls = []

for diceRolls in range(numRolls):
    d1 = randint(1,6)
    d2 = randint(1,6)
    allDiceRolls.append(d1)
    allDiceRolls.append(d2)
    print("You rolled a", d1, "and a",d2)
    
print("Your total for all of the rolls is", sum(allDiceRolls))

print("Your average for all of the rolls is", sum(allDiceRolls)/len(allDiceRolls))
 

Комментарии:

1. если мой ответ вам помог, пожалуйста, установите флажок и проголосуйте

2. На самом деле вам не нужно хранить все значения в списке. Вы можете просто иметь переменную sum и добавлять d1 и d2 к сумме после каждой итерации.

3. @AdityaKurkure, правильно, но мне довелось использовать списки