You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:12:13