Skip to main content
 首页 » 编程设计

python之Python 中的骰子统计

2025年05月04日12dyllove98

:重复询问用户掷骰子的次数,只有当用户输入的数字小于1时才退出。提示:使用一个while循环,只要num_rolls大于或等于就会执行1.

我这样做了,但不知道如何使用 while 循环来完成。

import random 
 
num_sixes = 0 
num_sevens = 0 
num_rolls = int(input('Enter number of rolls:\n')) 
 
if num_rolls >= 1: 
for i in range(num_rolls): 
    die1 = random.randint(1,6) 
    die2 = random.randint(1,6) 
    roll_total = die1 + die2 
 
    #Count number of sixes and sevens 
    if roll_total == 6: 
        num_sixes = num_sixes + 1 
    if roll_total == 7: 
        num_sevens = num_sevens + 1 
    print('Roll %d is %d (%d + %d)' % (i, roll_total, die1, die2)) 
 
print('\nDice roll statistics:') 
print('6s:', num_sixes) 
print('7s:', num_sevens) 
else: 
print('Invalid number of rolls. Try again.') 
* 

请您参考如下方法:

使用 while循环是解决 C 等编程语言中某些问题的一种非常常见的方法。在 Python 中你也可以这样做,但是 Python 有它自己的方法来做一些事情。在您的情况下,您一直在使用 for与 range() 循环功能。这比用 while 倒计时更“pythonic” ,这是更“C-ish”。

有趣的是,range功能很聪明,你不需要做额外的检查。任何整数参数 < 1将导致一个空列表和 for循环不会被执行。和 for有一个 else :

for i in range(num_rolls): 
    # your dicing code 
else: 
    print('Invalid number of rolls. Exiting.') 
    sys.exit(1) # might be good to signal an error with a return code > 0 
 
# your result printing code 

TL;DR:您的代码即使不是更好也很好。只有在老师(?)要求时才更改它 while .