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

如何为每日输入生成独立列表?Python代码问题排查

问题:每日销售数据列表累加问题

需要为每天输入的销售数据生成独立列表,已编写input_sales_day、input_sales和print_sales三个函数,但运行后每日列表会累加之前的数据,无法得到预期的每日独立销售数据列表。

当前代码

p = []
def input_sales_day(nbp):
    for i in range(nbp):
        np = input("Product Name: ")
        qv = input("quantity sold : ")
        p.append('{} {}'.format(qv, np))
    return p

def input_sales(nbp, d):
    sl = []
    for j in range(d):
        n = input_sales_day(nbp)
        sl.append('day {} : {}'.format(j+1, n))
    return sl

def print_sales(sl):
    return '\n'.join(sl)

print(print_sales(input_sales(2, 3)))

实际输出

Product name: z1
quantity sold : 1
Product Name: z1
quantity sold : 1
Product name : z2
quantity sold : 2
Product Name: z2
quantity sold : 2
Product name : z3
quantity sold : 3
Product Name: z3
quantity sold: 3
Day 1 : ['1 z1', '1 z1']
Day 2 : ['1 z1', '1 z1', '2 z2', '2 z2']
Day 3: ['1 z1', '1 z1', '2 z2', '2 z2', '3 z3', '3 z3']

期望输出

Day 1: ['1 z1', '1 z1']
Day 2 : ['2 z2', '2 z2']
Day 3 : ['3 z3', '3 z3']

解决方案

问题根源在于全局变量p:每次调用input_sales_day时,都是往同一个全局列表p里追加数据,没有重置,导致后续天数的数据会累加之前的内容。

只需要把p的定义移到input_sales_day函数内部,让每次调用函数时都创建一个新的空列表,就能实现每日数据独立:

def input_sales_day(nbp):
    p = []  # 每次调用函数时创建新的空列表
    for i in range(nbp):
        np = input("Product Name: ")
        qv = input("quantity sold : ")
        p.append('{} {}'.format(qv, np))
    return p

def input_sales(nbp, d):
    sl = []
    for j in range(d):
        n = input_sales_day(nbp)
        sl.append('day {} : {}'.format(j+1, n))
    return sl

def print_sales(sl):
    return '\n'.join(sl)

print(print_sales(input_sales(2, 3)))

修改后,每次调用input_sales_day都会生成一个全新的列表存储当日销售数据,不会和之前天数的数据混淆,运行结果就能符合期望输出。

内容的提问来源于stack exchange,提问作者Yao Min

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:35:20