文本游戏 - 如果文本输入不是" Var1"或" Var2"然后 - Python 3

时间:2014-04-08 17:26:44

标签: text python-3.x input

此问题引用了我之前提问的信息:

Text Game - If statement based of input text - Python

所以,现在我有了这个:

#Choice Number1
def introchoice():
    print()
    print("Do you 'Hesitate? or do you 'Walk forward")
    print()
    def Hesitate():
        print()
        print("You hesistate, startled by the sudden illumination of the room. Focusing on the old man who has his back turned to you. He gestures for you to come closer. \n ''Come in, Come in, don't be frightened. I'm but a frail old man'' he says.")
        print()
    #
    def Walk():
        print()
        print("DEFAULT")
        print()
    #
    def pick():
        while True:
            Input = input("")
            if Input == "Hesitate":
                Hesitate()
            break
            if Input == "Walk":
                Walk()
            break
            #
        #
    pick()
#-#-#-#-#-#-#-#-#-#-#-#-#
#Clean-up
#-#-#-#-#-#-#-#-#-#-#-#-#

现在我要做的就是这个;

def pick():
    while True:
        Input = input("")
        if Input == "Hesitate":
            Hesitate()
        break
        if Input == "Walk":
            Walk()
        break
        if Input is not "Walk" or "Hesitate":
            print("INVALID")
        break
        #
    #
pick()
#-#-#-#-#-#-#-#-#-#-#-#-#
#Clean-up
#-#-#-#-#-#-#-#-#-#-#-#-#

现在我让游戏确定了特定的文本输入,我希望它能够检测输入是否不是其中一个选项。这样,如上面的代码所示,如​​果输入文本不是“Walk”或“犹豫”,则打印文本“INVALID”

我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

我想您仍然希望收到输入,如果它是"无效",那么break语句必须 if s。否则,循环将只迭代一个时间。

此外,我建议您使用if-elif-else结构,以便您的代码看起来更有条理。

在这种情况下,您无法使用isis not,因为这些运算符用于检查对象是否相同(相同的引用)。使用运算符==!=检查是否相等。

while True:
    my_input = input("> ")
    if my_input == "Hesitate":
        hesitate()
        break
    elif my_input == "Walk":
        walk()
        break
    else:
        print("INVALID")

备注: