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 = []两行代码。
其他需修正的低级问题
- 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"
- 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
- 变量名冲突:创建账单分支的循环变量
i覆盖了之前的选项输入变量,建议改为idx之类的名称避免混淆。 - 未处理查找失败场景:当
linear_search返回错误字符串时,prices[result]会触发索引错误,需先判断结果是否为有效索引。
内容的提问来源于stack exchange,提问作者abhinav kumar
相关产品推荐
相关产品推荐

