Я делаю интернет-магазин в качестве домашнего задания. Я успешно создал словари предметов, включая их запас и цену, из текстового файла. Мы должны создать входные операторы, в которых пользователи сообщают нам, чего они хотят и сколько. Затем мы должны создать две функции в отдельном скрипте Python.
Меня беспокоит функция 1 Цель этой функции:
- Прокручивать элементы в groc_list (который я создал)
- Извлеките цену за единицу товара из словаря цен.
- Проверьте запас товаров в словаре запаса по сравнению с количеством товаров, выбранных в unit_list.
Если на складе недостаточно товаров, мы должны соответственно отреагировать на них.
Функция должна обновлять словарь запаса, чтобы показать уменьшение общего запаса. (например, если покупатель выбирает 2 галлона молока, ключ словаря запаса - значение «молоко» должно быть уменьшено на 2).
Я продолжаю получать код ошибки о моих аргументах в основном коде и один об элементе «списка», который не вызывается в моем коде функции. Я не могу разобраться.
Я опускаю первую часть кода, где я создаю словари, а что нет. В этом коде я получаю сообщение об ошибке при попытке вызвать функцию с ее аргументами. Я просто даю обычную «ошибку»
#code for main grocery store
#empty user shopping list
groc_list=[]
unit_list=[]
while 'done' not in groc_list:
groc_item=input('\nType the grocery item you would like to purchase.\If you are done shopping, type done: ')
groc_list.append(groc_item)
if groc_item == 'done':
print('Thanks for shopping')
#asks user quantity
elif groc_item in stock.keys():
unit_quan=input('How many would you like? ')
unit_list.append(unit_quan)
else:
print('We are sorry. We do not recognize that item.\Please check your spelling.')
# removes 'done'
groc_list.pop()
# function 1
from grocery import grocery_cost
grocery_cost(groc_list, prices, stock, unit_list)
В этой функции я сталкиваюсь с неприятностями, когда речь идет о части выражения elif. Там написано, что элемент списка не может быть вызван. Я думаю, что все мои числа установлены как целые числа.
#The code for function 1
def grocery_cost(groc_list, prices, stock, unit_list):
"""Checks stock of items vs items customer selects. Prints if item is unavailable"""
count=0
for item in groc_list:
if stock[item] == 0:
print('We are sorry. We are out of stock of that item, \
and it will not be added to your cart.')
elif stock[item] >= unit_list(count):
y=unit_list(count)*prices[item]
print('%s %15.2f \n' %(item, y))
stock[item]=stock[item]-unit_list(count)
else:
print('Only', stock[item], ' of that item is available. \
Those have been added to your cart.')
y=stock[item]*prices[item]
unit_list.pop(count)
unit_list.insert(count, stock[item])
print('%s %15.2f \n' %(item, y))
stock[item]=stock[item]-unit_list(count)
count+=1
return y
Я ожидал, что программа рассчитает мои итоговые значения для каждого элемента и позволит мне взять возвращенное значение из функции и использовать его в своем коде, но вместо этого оно завершится.