首页 > 解决方案 > “当真”循环不运行

问题描述

我的代码:

def make_response(self):
    recognised = False
    get_cmd = False
    database = {
        "hello": "Nice to meet you. What can I do for you?",
        "hi": "Nice to meet you. What can I do for you?",
        "hey": "Nice to meet you. What can I do for you?",
        "goodbye": "Bye. See you next time!"
    }

    self = self.lower()

    for i in database:
        if i in self:
            recognised = True
            value = database.get(i)
            print(value)


def robot():
    print('Welcome to robot.py')
    print('What can I do for you?')

    while True:
        query = input('>')
        make_response(query)


robot()

当我输入“hello”时,程序给出了预期的响应,但它只是退出而没有完成循环。哪条线打破了循环?谢谢你。

标签: pythonpython-3.xloopswhile-loop

解决方案


在 Python 3.x 中,工作正常。

也许您正在使用 python 2.x 进行编译。在这种情况下,您需要使用 'raw_input' 而不是 'input',但我不推荐 raw_input(它在 Python3 中已弃用)。

尝试 Python 3.x。

PS:另外,我会用其他变量名替换“self”。自我用于类。


推荐阅读