如果roll_more ==' no'

时间:2016-11-25 17:42:47

标签: python python-3.x dice

我尝试制作一个简单的骰子滚动程序,我可以得到骰子滚动'但是我无法阻止它,它只会在你输入任何内容时保留。我试着添加它,所以如果你说'没有'或者' n'它将返回并像往常一样转到我的其他功能。我说返回是因为继续我的其他代码很重要。谢谢。

import random
min = 1
def rolling6():
    roll_more = "yes"
    while roll_more == "yes" or roll_more =="y":
        max = 6
        print("Rolling the dices...")
        print("The values are...")
        print(random.randint(min, max))
        print(random.randint(min, max))
        roll = input("Roll the die again? ")

    if roll_more == "no" or roll_more == "n":
        return
    #roll_again = "yes"
    #while roll_again == "yes" or roll_again =="y":
    #   print("Rolling the dices...")
    #   print("The values are...")
    #   print(random.randint(min, 6))
    #   print(random.randint(min, 6))
    #   roll_again = input("Roll the die again? ")

    #if roll_again == "no" or roll_again == "n":
    #   return


x = input("Use six sided die? ") 
while x == "yes" or x =="y":
    rolling6()

1 个答案:

答案 0 :(得分:1)

您正在写信至roll而不是roll_more,因此您始终会检查常数"是"。

此外,您的xroll_more变量不会保留您期望的值。首先,你输入"是"进入循环,以便rolling6被调用。然后,进入rolling6循环。当您通过输入" no"退出时,退出到外循环,读取x,其仍具有值"是" (因为你从来没有在任何地方覆盖它),这意味着你不会突破那个循环,并且你再次回到rolling6

您可能希望将roll更改为roll_more并将while x == "yes" or x =="y":更改为if x == "yes" or x =="y":

此外,您的if roll_more == "no" or roll_more == "n": return是多余的,因为该语句后面没有代码。