Python新手求助:如何让聊天机器人的输入语句持续运行?
如何让Python聊天机器人支持多次交互?
嘿,很高兴看到你开始动手做Python聊天机器人!你的基础对话逻辑已经写得很清晰了,现在遇到的问题是程序只运行一次就终止对吧?这是因为当前代码是按顺序执行的,完成一轮问答后就走到了代码末尾,自然就退出了。要实现持续交互,我们只需要给整个对话逻辑套一个循环就行,最常用的就是while循环。
最简单的实现:无限循环 + 退出机制
我们可以用while True创建一个无限循环,让对话逻辑重复执行,同时加一个退出条件(比如用户输入"exit"时结束程序),这样既可以持续聊天,也能让用户主动终止程序。修改后的代码如下:
print("Hi! I am AUGbot") while True: x = input() # 把输入转成小写,兼容不同大小写的输入,比如"Hi" "HI"都能匹配 x_lower = x.lower() if x_lower == "hi": print("Hello!") elif x_lower == "hello": print("Hi!") elif x_lower == "how are you": print("I am fine! How are you?") elif x_lower == "i am fine": print("Nice!") elif x_lower == "i am not fine": print("Oh, Sorry to know that") elif x_lower == "exit": print("Goodbye!") break # 跳出循环,结束程序 else: print("I am not sure I understand")
代码关键点解释:
while True:这会创建一个无限循环,直到遇到break语句才会停止。x.lower():把用户输入的文本转成小写,这样不管用户输入"Hi"、"HI"还是"hi",都能匹配到对应的回复,提升聊天的友好度。elif x_lower == "exit"+break:给用户一个主动退出的途径,不然程序会一直运行下去,只能手动强制终止。
如果不想加退出条件,单纯让程序一直运行,也可以去掉退出的分支,但我还是建议加上,这样体验会更人性化~
内容的提问来源于stack exchange,提问作者Augustine




