Python自定义AI助手新增功能需多轮输入问题求解
问题根因
- 代码中每个
if/elif判断分支都单独调用了一次input()函数:- 程序运行后先触发第一个条件的
input(),等待第一次输入,如果内容包含"Hello"就执行问候逻辑 - 如果第一次输入不包含"Hello",程序会进入
elif分支,再次调用input()等待第二次输入,内容包含"time"才会执行报时逻辑 - 每新增一个带
input()的判断分支,就会多要求一次输入,自然会出现新增第N项功能需要输入N次的问题
- 程序运行后先触发第一个条件的
修复方案
提前调用一次input()将用户输入内容存入变量,所有判断都基于该变量执行即可,修改后的对应代码段如下:
user_input = input() if "Hello" in user_input: wish_me() elif "time" in user_input: say(f"It is {strtime}") print(f"It is {strtime}")
可选优化建议
- 当前程序执行一次判断就会自动退出,如果需要实现持续交互,可以在外层套入无限循环,同时新增退出指令终止程序
- 建议将时间获取逻辑移到报时分支内部,避免程序启动后时间就固定不再更新的问题
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

