如果总和大于8且小于20,则尝试创建一个打印4个骰子骰子的程序。当我运行时,我得到一个无限循环。我尝试设置total = 0然后在while循环中将4个骰子的总和加到总数中但是没有用。
代码:
from random import randint
def main():
total = sum(diRoll())
while total > 8 and total < 20:
print(diRoll())
def diRoll():
dice1 = randint(1, 6)
dice2 = randint(1, 6)
dice3 = randint(1, 6)
dice4 = randint(1, 6)
diceRolls = dice1, dice2, dice3, dice4
return sorted(diceRolls)
main()
答案 0 :(得分:4)
好吧,在while
循环中,您永远不会将total
设置为新值。所以你的循环将继续测试旧值,因此永远不会结束。
答案 1 :(得分:0)
尝试以下操作:而将进入无限循环,但这会打印出符合您总计标准的不同骰子排列。如果您包含中断,它将终止
def main():
while True:
total = sum(diRoll())
if total > 8 and total < 20:
print(diRoll())
break