Py学习  »  Python

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

beginner_geek07 • 3 年前 • 1323 次点击  

这就是我目前的情况:

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))

我想打印个人死亡,因为我已经得到了结果。

滚动2d20。。。

死亡1:1

死亡2:15

总数:16

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128996
文章 [ 2 ]  |  最新文章 3 年前
BrokenBenchmark
Reply   •   1 楼
BrokenBenchmark    3 年前

你可以添加一个 print() 内部声明 RollDice() 功能(尽管这会导致生成器产生打印到控制台的副作用,这可能是可取的,也可能不是可取的,取决于您是否在其他地方使用此功能):

def Rolldice(s,r):
    for i in range(0,r):
        die = random.randint(1, s)
        print(f"Die {i}: {die}")
        yield die
Antoine Delia
Reply   •   2 楼
Antoine Delia    3 年前

我觉得你把事情复杂化了。

一旦你得到了要掷的骰子数和边数,简单地使用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