Python中的骰子统计

时间:2015-05-08 01:52:07

标签: python statistics dice

:反复询问用户滚动骰子的次数,仅在用户输入的数字小于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.')
*

1 个答案:

答案 0 :(得分:-1)

使用while循环是解决C语言等编程语言中的一些问题的常用方法。在Python中你也可以这样做,但Python有自己的方法来做某些事情。在您的情况下,您一直在使用for循环和range()函数。那更多" pythonic"而不是倒计时while,这是更多" 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才能更改。