如何在 python 的掷骰子程序中打印单个骰子的结果?

How do I print the result of the individual die in the dice roll program in python?

这是我目前拥有的:

import random
r = int(input("Enter the number of dice to roll: "))
s = int(input("Enter the number of sides per die: "))

def Rolldice(s,r):
    for i in range(0,r):
        die = random.randint(1, s)
    
        yield die
for num in range(1):
    print("Rolling",r,'d',s,':')
    print(f"Total: ")
    generator = Rolldice(s,r)
    print(sum(generator))

我想打印单个骰子,因为我已经得到了结果。

Rolling 2d20...

Die 1: 1

Die 2: 15

Total: 16

您可以在 RollDice() 函数中添加一个 print() 语句(尽管这会导致生成器产生打印到控制台的副作用,这可能是可取的,也可能是不可取的,具体取决于如果您在其他地方使用此功能):

def Rolldice(s,r):
    for i in range(0,r):
        die = random.randint(1, s)
        print(f"Die {i}: {die}")
        yield die

我觉得你是over-complicating东西

一旦你得到了要掷的骰子数和面数,只需使用 for 循环就足够了。

import random

r = int(input("Enter the number of dice to roll: "))
s = int(input("Enter the number of sides per die: "))

total = 0
for num in range(r):
    die = random.randint(1, s)
    print(f"Die {num + 1}: {die}")
    total += die

print(f"Total of all dice: {total}")

产出

Enter the number of dice to roll: 2
Enter the number of sides per die: 20
Die 1: 7
Die 2: 2
Total of all dice: 9