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

Python食堂软件:向items数组追加元素后查看为空问题求助

问题根源与修复方案

核心问题:数组每次循环被重置为空

你定义的items和prices列表放在了主循环(for z in range(...))内部,每次进入主菜单循环时,这两个列表都会被重新初始化为空数组。所以在"Configure Items"里添加元素时,只是在当前循环的临时列表中添加,一旦退出该分支回到主菜单,下次进入任何分支时都会重新创建空列表,最终导致查看所有元素时显示为空。

修复步骤

把items和prices的定义移到主循环外面,和name、debts作为全局变量声明:

z = 0
name = []
debts=[]
items = []  # 移至此处
prices = [] # 移至此处
debt = 0
j=' '
# 后续代码保持不变

同时删除主循环内部的items = []和prices = []两行代码。

其他需修正的低级问题

  1. linear_search函数逻辑错误:第二个return语句永远无法执行,需调整顺序:
def linear_search(arr, target):
    for k in range(len(arr)):
        if arr[k] == target:
            return k
    return "Item has not been created or spelling is wrong"
  1. name_search函数依赖全局变量:函数内误用外部变量n,应使用参数target:
def name_search(arr, target):
    for j in range(len(arr)):
        if arr[j] == target:
            print("Name has been created already")
            return
    arr.append(target)  # 用传入的arr参数,避免直接操作全局name
  1. 变量名冲突:创建账单分支的循环变量i覆盖了之前的选项输入变量,建议改为idx之类的名称避免混淆。
  2. 未处理查找失败场景:当linear_search返回错误字符串时,prices[result]会触发索引错误,需先判断结果是否为有效索引。

内容的提问来源于stack exchange,提问作者abhinav kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:03:14