骰子卷蟒蛇

时间:2014-10-30 01:21:14

标签: python

如果总和大于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()

2 个答案:

答案 0 :(得分:4)

好吧,在while循环中,您永远不会将total设置为新值。所以你的循环将继续测试旧值,因此永远不会结束。

答案 1 :(得分:0)

尝试以下操作:将进入无限循环,但这会打印出符合您总计标准的不同骰子排列。如果您包含中断,它将终止

def main():
    while True:
        total = sum(diRoll())
        if total > 8 and total < 20:
            print(diRoll())
            break