Я пытаюсь отредактировать ввод, введенный для каждого дня. Я создал функцию input_sales_day, которая содержит количество продуктов для ввода в течение дня, функцию input_sales, которая принимает количество продуктов и дней в качестве параметров, где, как мне кажется, кроется проблема, и последнюю функцию, которая просто печатает. Я пытался использовать split, но всегда получаю сообщение об ошибке или вместо этого просто печатаю каждое слово.
Вот код, он печатает:
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 = []
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)))
о, я потратил около часа, задаваясь вопросом, что не так, пытался что-то изменить и получил всевозможные ошибки с разделением, а также проверил старый вопрос, который немного похож, но не сработал: / спасибо, это отмечено.
Все, что вам нужно сделать, это сделать p
локальной переменной функции input_sales_day
. Если вы сделаете это, то p
будет сбрасываться при каждом вызове. Так:
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)))
Вы не удаляете старые значения из списка p, поэтому, когда вы переходите на следующий день, данные предыдущего дня все еще находятся в списке, вам нужно менять способ их печати или удалять их каждый день.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Если вы хотите, чтобы каждый день был отдельным, переместите строку
p = []
ВНУТРИ функцииinput_sales_day
. Затем каждый вызов функции создает новый список.