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