Нашли ошибку?
Скачать чистый
урок 1 из 6≈ 15 минупражнения: 0 из 5

Python-минимум

Самопроверка перед курсом — словари, циклы, генераторы списков, функции и try/except. Если всё решается легко, вы готовы.

Python запустится при первом выполнении

Курс рассчитан на тех, кто уже пишет простые программы на Python: с переменными, списками, словарями, циклами и функциями. Этот урок — не объяснение, а самопроверка: пять коротких упражнений на то, что понадобится дальше. Если они решаются за пару минут — смело идите к следующему уроку. Если какое-то не получается, в конце урока есть ссылки, что повторить.

Заодно познакомьтесь с устройством уроков. Серые блоки — ячейки кода: нажмите «Выполнить», и код выполнится прямо в браузере. Под ячейкой виден сохранённый вывод — так он выглядел, когда урок писали; после запуска появится ваш. Код можно изменить кнопкой «Изменить» и вернуть обратно. Все ячейки урока работают в одной программе: переменная из одной ячейки видна в следующих — как в Jupyter-ноутбуке.

Весь курс построен вокруг одного примера — кассы «Кофейной лавки». Сейчас меню — обычный словарь, а к концу курса касса станет программой из нескольких классов: товары, корзина, скидки, оплата, склад и чек.

Словари и циклы

Словарь хранит пары «ключ → значение», а цикл for по items() перебирает пары целиком:

[ ]Меню — словарь
menu = {"эспрессо": 150, "капучино": 220, "чай": 120, "раф": 260, "какао": 190}
for name, price in menu.items():
    print(f"{name}: {price} ₽")
print("позиций в меню:", len(menu))
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
эспрессо: 150 ₽
капучино: 220 ₽
чай: 120 ₽
раф: 260 ₽
какао: 190 ₽
позиций в меню: 5
[ ]Упражнение 1Сколько стоит всё меню решено

Посчитайте, сколько стоит взять по одной позиции каждого напитка из словаря menu, и сохраните сумму в total.

total = ...

Генераторы списков

Генератор списка (list comprehension) строит новый список из старого одной строкой — выражение, for и при желании if:

[ ]Новый список из старого
volumes = [250, 300, 400]
print([v * 2 for v in volumes])
print([v for v in volumes if v > 280])
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
[500, 600, 800]
[300, 400]
[ ]Упражнение 2Недорогие напитки решено

Сохраните в cheap список названий напитков из menu, которые стоят меньше 200 ₽, — в том порядке, в каком они записаны в словаре.

cheap = ...

Функции

Функция получает аргументы и возвращает результат через return. У параметра может быть значение по умолчанию — тогда аргумент можно не передавать:

[ ]Функция со значением по умолчанию
def per_cup(price, cups=1):
    return price / cups


print(per_cup(300))
print(per_cup(300, 4))
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
300.0
75.0
[ ]Упражнение 3Чаевые решено

Напишите функцию with_tip(amount, percent=10): она возвращает сумму вместе с чаевыми, округлённую до целых рублей встроенной round. Например, with_tip(500) — это 550, а with_tip(480, 5) — 504.

def with_tip(amount, percent=10):
    ...  # верните сумму с чаевыми

Словарь-счётчик

Частая задача — посчитать, сколько раз встречается каждое значение. Метод словаря get возвращает значение по ключу, а если ключа нет — значение по умолчанию:

[ ]get со значением по умолчанию
stock = {"зёрна": 12, "молоко": 4}
print(stock.get("молоко", 0))
print(stock.get("сливки", 0))
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
4
0
[ ]Упражнение 4Что заказывают решено

В списке orders — напитки по порядку заказов за утро. Соберите словарь counts: напиток → сколько раз его заказали.

orders = ["капучино", "чай", "капучино", "раф", "чай", "капучино"]
counts = ...

Исключения: try и except

Если операция невозможна, Python выбрасывает исключение — например, int("сто") даёт ValueError. Блок try/except перехватывает его, и программа продолжает работу:

[ ]Перехватить ValueError
for text in ["3", "три"]:
    try:
        print(int(text) * 2)
    except ValueError:
        print(f"не число: {text}")
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
6
не число: три
[ ]Упражнение 5Цена из строки решено

Напишите функцию parse_price(text): если строка — целое число ("250"), функция возвращает его как int, а если нет ("бесплатно", "") — возвращает None.

def parse_price(text):
    ...  # число или None

Что повторить, если не получилось

Не получилось Что повторить
словари и циклы Словари, for
генераторы списков List comprehensions
функции Как определить функцию, значения по умолчанию
try/except Обработка исключений

Всё решилось? Отлично — в следующем уроке посмотрим на знакомые значения по-новому: как на объекты.

Нашли ошибку?