Содержит ли файл цены каждой из разных продуктов?
Пользовательский оператор input
также должен иметь .strip()
в конце, так как иногда символы ввода строки могут быть включены из пользовательского ввода.
Вам нужно только один раз прочитать файл, а не в цикле.
Когда пользователь вводит продуктовый продукт, он должен, как вы говорите, проверить, что он существует:
if grocery in groceries:
...
else:
#grocery name not recognised
Я думаю, что у вас должен быть отдельный словарь для хранения счетчиков каждой бакалеи, например: http://docs.python.org/library/collections.html#collections.Counter
import collections
quantitiesWanted = collections.Counter()
Тогда можно запросить любой продукт, как этот quantitiesWanted['eggs']
, который вернет 0
по умолчанию.Выполнение чего-то вроде quantitiesWanted['eggs'] += 1
увеличит его до 1
и т. Д.
Чтобы получить текущую сумму, вы можете сделать:
total = 0
for key, value in quantitiesWanted:
total += groceries[key] * value