Python 循环 - 用骰子确定箱车
Python Loops - Determining Box Cars with Dice
我需要编写一个程序来计算滚动 Box Cars (6+6) 需要多少次。
我在使用滚动计数器时遇到了问题。我无法获得循环遍历计数器和 return 主程序的滚动计数的功能。这是我目前所拥有的。
import random
roundCounter = 0
rollCounter = 0
def roll(die1,die2):
nRolls = 0
print(die1, die2) # for testing purpose only
while True:
nRolls += 1
if die1 == 6 and die2 == 6:
break
return nRolls
while True:
roundCounter += 1
die1 = random.randrange(1, 7)
die2 = random.randrange(1, 7)
roll(die1,die2)
print('Round #', roundCounter, 'took', rollCounter, 'rolls')
roll_again = input('Press Enter to go again, or q to quit:')
if roll_again == 'q':
break
我可以输出圆形计数器。下面是一个例子。
3 6
Round # 1 took 0 rolls
Press Enter to go again, or q to quit:
5 4
Round # 2 took 0 rolls
Press Enter to go again, or q to quit:
4 6
Round # 3 took 0 rolls
Press Enter to go again, or q to quit:
6 5
Round # 4 took 0 rolls
Press Enter to go again, or q to quit:
5 5
Round # 5 took 0 rolls
Press Enter to go again, or q to quit:
3 2
Round # 6 took 0 rolls
Press Enter to go again, or q to quit:
6 4
Round # 7 took 0 rolls
Press Enter to go again, or q to quit:
对我遗漏的东西有什么想法吗?
您的函数循环中有两个致命问题:
while True:
nRolls += 1
if die1 == 6 and die2 == 6:
break
return nRolls
首先是您 return 在第一个 lop 迭代中,而不是等待 boxcars 出现。
二是重掷失败; die1
和 die2
被传递到函数中,函数将它们有效地视为常量:您永远不会更改它们。除非你恰好通过了一对 6
,否则你会遇到第一个 return
(第一个问题)。
作为一个人,您需要完成 您的 流程,并更加小心地使您的代码匹配。
我需要编写一个程序来计算滚动 Box Cars (6+6) 需要多少次。
我在使用滚动计数器时遇到了问题。我无法获得循环遍历计数器和 return 主程序的滚动计数的功能。这是我目前所拥有的。
import random
roundCounter = 0
rollCounter = 0
def roll(die1,die2):
nRolls = 0
print(die1, die2) # for testing purpose only
while True:
nRolls += 1
if die1 == 6 and die2 == 6:
break
return nRolls
while True:
roundCounter += 1
die1 = random.randrange(1, 7)
die2 = random.randrange(1, 7)
roll(die1,die2)
print('Round #', roundCounter, 'took', rollCounter, 'rolls')
roll_again = input('Press Enter to go again, or q to quit:')
if roll_again == 'q':
break
我可以输出圆形计数器。下面是一个例子。
3 6
Round # 1 took 0 rolls
Press Enter to go again, or q to quit:
5 4
Round # 2 took 0 rolls
Press Enter to go again, or q to quit:
4 6
Round # 3 took 0 rolls
Press Enter to go again, or q to quit:
6 5
Round # 4 took 0 rolls
Press Enter to go again, or q to quit:
5 5
Round # 5 took 0 rolls
Press Enter to go again, or q to quit:
3 2
Round # 6 took 0 rolls
Press Enter to go again, or q to quit:
6 4
Round # 7 took 0 rolls
Press Enter to go again, or q to quit:
对我遗漏的东西有什么想法吗?
您的函数循环中有两个致命问题:
while True:
nRolls += 1
if die1 == 6 and die2 == 6:
break
return nRolls
首先是您 return 在第一个 lop 迭代中,而不是等待 boxcars 出现。
二是重掷失败; die1
和 die2
被传递到函数中,函数将它们有效地视为常量:您永远不会更改它们。除非你恰好通过了一对 6
,否则你会遇到第一个 return
(第一个问题)。
作为一个人,您需要完成 您的 流程,并更加小心地使您的代码匹配。