Python Mad Libs循环代码修复求助:输入输出逻辑问题排查
修复Python Mad Libs循环代码问题
原代码存在的问题
- 初始
tokens为空字符串,第一次循环直接访问索引会触发IndexError - 重复调用
input(),导致每次循环需要输入两次内容,不符合需求 - 终止条件判断错误:
tokens是列表,和字符串'quit'永远不相等,无法触发终止 - 输出格式顺序错误:示例要求数字在前、单词在后,原代码顺序颠倒
修复后的代码
while True: # 读取一行输入并分割为词汇和数字 user_input = input().strip() tokens = user_input.split() # 检测终止指令,忽略后续输入 if tokens[0] == 'quit': break # 按要求格式输出语句 print(f'Eating {tokens[1]} {tokens[0]} a day keeps the doctor away.')
修复说明
- 仅调用一次
input()读取完整行输入,分割后得到词汇和数字的列表,避免重复输入 - 将终止条件改为判断列表第一个元素是否为
'quit',匹配需求中的终止逻辑 - 调整输出字符串中数字与词汇的顺序,完全贴合示例输出格式
- 移除了无意义的初始变量赋值,简化代码结构
内容的提问来源于stack exchange,提问作者Luna_Dragon
相关产品推荐
相关产品推荐

