Поздравляем!
Поздравляем, ваша программа работает, и вы дошли до конца курса Python! Она печатает аккуратный чек, считает стоимость каждой строки и всего заказа, решает вопрос с доставкой, проверяет количество и объединяет одинаковые товары. И всё это вы написали сами.
Последнее улучшение. В чеке написано Доставка: $0. Это верно, но магазины пишут бесплатно, и звучит это гораздо лучше. В print_receipt() печатайте Доставка: бесплатно, когда доставка ничего не стоит, а в остальных случаях — цену, как раньше.
Чему вы научились. Посмотрите, как каждая часть курса нашла своё место в вашей программе:
- Переменные и f-строки хранят итог и доставку и собирают строки чека.
- Условия решают вопрос с доставкой, проверяют количество и находят одинаковый товар.
- Список хранит корзину, а
.append()добавляет в него. - Циклы перебирают корзину, чтобы напечатать её, сложить стоимости и найти товар.
- Функции делят программу на части с понятными задачами:
line_total()иcart_total()считают,delivery_price()решает,add_item()изменяет корзину, аprint_receipt()печатает. - Словари хранят вместе то, что относится к одному товару: название, цену и количество.
- А когда что-то не работало, сообщения об ошибках подсказывали, что пошло не так и где: сначала последняя строка, потом номер строки.
Python на вашем компьютере. Программы здесь работают в вашем браузере. Проще всего запустить их на своём компьютере в Thonny (thonny.org) — бесплатном редакторе, созданном для начинающих, со встроенным Python. Установите его, вставьте в него свою программу, сохраните как receipt.py и запустите зелёной кнопкой Run (или клавишей F5). Позже вы сможете установить Python с python.org и писать программы в редакторе кода, например в Visual Studio Code.
Что дальше. Теперь вы знаете основы, из которых состоит любая программа на Python. Вот несколько идей, что изучать дальше:
- Ввод от пользователя. На вашем компьютере работает
input():name = input("Что вы хотите купить? ")ждёт, пока пользователь что-нибудь напечатает и нажмёт Enter, и отдаёт вам этот текст. (Здесь, в браузере, печатать некому, поэтому он не работает.) Ваш магазин мог бы спрашивать, что положить в корзину. - Обработка ошибок. Когда пользователь печатает
abcтам, где вы ждёте число,int()завершается с ошибкойValueError. С помощьюtryиexceptпрограмма может перехватить ошибку и спросить снова. - Файлы. С помощью
open()программа может читать данные из файла и сохранять результаты, чтобы корзина не пропадала, когда программа завершается. - Модули. В Python много готового кода:
import randomдаёт случайные числа (например, для игр), аimport math— математические функции. Можно установить ещё тысячи модулей — для графиков, сайтов, анализа данных и многого другого. - Классы, чуть позже: собственные типы данных, например
Itemсо своими функциями (методами). - Собственные проекты. Игра «Угадай число», викторина, список ваших расходов. Больше всего учишься, решая собственные задачи.
А если вы хотите создавать сайты, вас ждут курсы HTML, CSS и JavaScript.
Задание
- 1
В
print_receipt()напишите инструкциюif, которая печатаетДоставка: бесплатно, когдаdeliveryравно0. Перенесите строку, печатающую цену доставки, в веткуelse, чтобы она выполнялась только в остальных случаях. Теперь наша корзина выдаётДоставка: бесплатно(и никакогоДоставка: $0). - 2
Убедитесь, что вы сохранили строку, печатающую цену доставки, под
else: заказы дешевле $50 по-прежнему должны её показывать, напримерДоставка: $5.