如何在 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
这是我目前拥有的:
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