# Корзина товаров со счётчиком каждой позиции

В этой статье мы используем словарь для хранения товаров в корзине пользователя с учётом количества единиц каждого товара в корзине.

## Создаём переменные

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XTjk8nM7IPDJuaDkG%2Fimage.png?alt=media\&token=0dbfe18c-00cf-425f-96c0-7edc58b33fec)

{% hint style="info" %}
Обратите внимание на начальное значение переменной: **{}** — это пустой словарь.
{% endhint %}

Создадим также переменную для хранения добавляемого товара:

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xf4mTzrKPxVj4Rg2x%2Fimage.png?alt=media\&token=8ae01040-eade-47e4-b5f5-db71142b969e)

## Цепочка для добавления товара в корзину

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XaaoaPGITT6qWBv3K%2Fimage.png?alt=media\&token=999f0329-c7a0-4133-ae22-87536a46046f)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XailDwLFi91SRkeTR%2Fimage.png?alt=media\&token=164a5e52-e24a-4513-b9b1-92d6f4e64601)

![Ждём, пока пользователь выберет товар](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XaobPe2s0V7Oc3tX4%2Fimage.png?alt=media\&token=b83c56c7-2698-40dc-a18f-6c7b475539c6)

![Сохраняем его ответ в переменную %товар%](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xg9mDGTUTSagqUtty%2Fimage.png?alt=media\&token=668161d3-5378-40e9-9d76-2f3b21ac5918)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XgHaVYjwSoFnkxrnS%2Fimage.png?alt=media\&token=f825e5fa-d078-4af9-b4f4-2ee111ef0226)

![Ждём, когда пользователь укажет число единиц товара](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XgPs_y_emOQsLVI87%2Fimage.png?alt=media\&token=8fbcf411-e755-43c1-adb1-86c0dd33e3af)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xg_dERANd9-mAvyOr%2Fimage.png?alt=media\&token=5e2c4313-382e-4baf-9532-f41483d32c69)

```python
%корзина%[%товар%] = %корзина%.get(%товар%, 0) + int(%сообщение%)
```

Здесь мы берём старое значение для указанного товара (или 0, если товара в корзине нет) и прибавляем к нему указанное пользователем значение. Так как тип переменной %сообщение% — Строка, то сначала необходимо преобразовать значение переменной к числу с помощью функции **int()**.

![Отправляем пользователю текущее содержимое корзины](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xgw5Bxk_9JWRbqOb4%2Fimage.png?alt=media\&token=f0d30cc3-9fd3-48b2-8348-3d0f5e95a2e6)

```python
{{ %корзина% | pretty }}
```

## Цепочка для удаления товара

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XbnAwMwWqVcDTigT3%2Fimage.png?alt=media\&token=e3411a30-822b-4811-a220-d7cfc2a61c99)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xbs0O2SiY4gZfqEbr%2Fimage.png?alt=media\&token=bec59860-0502-4e0b-a458-684b6fa4fbec)

![Ждём ответа пользователя](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XbvpbrVWXbMPrNWvC%2Fimage.png?alt=media\&token=ecd16a23-0116-4262-ab81-9fb0b8a529ff)

![Удаляем ключ со значением из переменной %сообщение% из словаря %корзина%](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XbzroLBlE6RnzE-ne%2Fimage.png?alt=media\&token=045ce4e4-5b7c-47b6-bce9-fa13e2258ca5)

```python
del %корзина%[%сообщение%]
```

![Выводим пользователю текущее содержимое корзины](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5Xc6J6IvqEfZerCPvx%2Fimage.png?alt=media\&token=32bdf885-11e9-4aa5-860b-45197c659652)

```python
{{ %корзина% | pretty }}
```

## Тестируем

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XhH4zyD_PH8wasPP3%2Fimage.png?alt=media\&token=ec61f152-00e8-4985-a9a1-71b33cdadd2c)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XhStJQT1XuKCetKcS%2Fimage.png?alt=media\&token=361ff1ec-e4de-442e-9b60-802354a488b5)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M5X3puTRBMekTcnlBNC%2F-M5XhkNlDvdBbbvz7A50%2Fimage.png?alt=media\&token=5e4efeb9-d992-4d0e-9e3f-c25817a93f5a)
