Как увеличить список с помощью переменной, которая меняет свое значение при каждой перезагрузке в цикле в Python3? - PullRequest
0 голосов
/ 28 июня 2018

У меня проблема. Я хочу сделать список покупок, который спрашивает пользователя, какой товар он хочет и сколько. Список будет эволюционировать каждый раз, когда цикл «перезагружается», добавляя имя элемента (строку) и номер, с которым он связан (целое число). Единственная проблема заключается в том, что при цикле «перезагрузки» содержимое списка сбрасывается.

Вот код:

def shopping(n):
  x=0
  while x<n:
    item={}
    nb={}
    shopping_cart={}
    item[x]=str(input("item?")) #We asking the user the name of the item he wants.
    nb[x]=int(input("nb?")) #We asking the user the number he wants.
    shopping_cart[x] = item[x],nb[x]
    shopping_cart+=shopping_cart[x] #We try to add what the user has entered to a dictionary to not reset what he has entered before.
    x+=1
  print(shopping_cart)
shopping(2) #To simplify, in this exemple, we imagine that the customer want to buy two differents items.

Но на консоли у меня есть это:

TypeError: unsupported operand type(s) for +=: 'dict' and 'tuple'

Я не нахожу способ не сбросить то, что клиент сказал раньше ...

Ps: извините за мой английский, я француз ...:)

1 Ответ

0 голосов
/ 28 июня 2018

Следующая функция вернет словарь предметов, которые пользователь хочет приобрести, по номеру каждого предмета, который они хотят.

def shopping(n):
    cart = {}
    for _ in range(n):
        item = input("What would you like to buy?")
        amount = int(input("How many would you like?"))
        cart[item] = cart.get(item, 0) + amount
    return cart
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...