为何调用all_data函数后程序陷入无限循环?如何修复?
问题修复方案
你的代码出现无限循环的原因是:循环内部没有更新变量x的值。当你输入"1"后,x一直保持为"1",循环条件始终成立,导致反复执行打印DataFrame的逻辑。
修复方法很简单,在每次处理完用户选择后,重新调用main_menu()获取新的输入,同时处理"x"选项时直接退出循环:
修改后的完整代码:
import pandas as pd df = pd.read_csv('sales_data.csv') def main_menu(): print("Main Menu") print("1) Return all current sales data") print("2) ") print("3) ") print("4) ") print("5) ") print("x) Exit") return input("Enter your choice: ") def all_data(): return df # main menu loop x = main_menu() while x in ["1", "2", "3", "4", "5", "x"]: if x == "1": all_sales = all_data() print(all_sales) elif x == "x": break # 处理退出选项 # 其他选项的逻辑可以在这里补充 # 关键:处理完当前选项后,重新获取用户输入 x = main_menu()
核心改动点:
- 添加
elif x == "x": break,让用户输入"x"时能正常退出程序 - 在循环末尾调用
x = main_menu(),每次处理完操作后更新用户的选择,避免无限循环
内容的提问来源于stack exchange,提问作者user19154916
相关产品推荐
相关产品推荐

