Урок 9.1 · Программирование с нуля · Модуль 9. Повторение и практика · Бесплатно
Цель урока: Закрепить переменные, условия и циклы на задаче о покупках со скидкой.
Нужно знать заранее: Модули 2–4
Зачем это нужно: Материал забывается, если к нему не возвращаться. Три коротких задания повторения закрепляют то, что уже изучено, и показывают, что переменные, условия и циклы работают вместе.
Как это работает: Сначала переменные и вычисления, затем условия, затем циклы — по одному заданию на тему. for — цикл, который по очереди берёт каждый элемент списка. if — условие: код внутри выполняется, только если оно истинно. Задания собраны так, что решение каждого — три-шесть строк: это проверка понимания, а не скорость печати. Если задание не идёт, вернитесь к уроку модуля — это нормальный путь, а не шаг назад.
Имена переменных: prices — цены total — итого count — количество дорогих покупок
Разбор: prices = [300, 700, 1000] total = 0 count = 0 for price in prices: total += price if price > 500: count += 1 print(total) print(count) if total > 1000: print(round(total * 0.9)) else: print(total)
Список чисел обходится циклом for: в переменной price по очереди оказывается каждая цена. Сумма накапливается в total, счётчик count увеличивается по условию: if price > 500. После цикла печатаем сумму 2000 и количество дорогих покупок 2. Если сумма больше 1000, печатаем сумму со скидкой 10 %: 2000 * 0.9 = 1800.
Почему переменные заводят до цикла: total и count должны существовать до первого шага. Если создать их внутри цикла, на каждом шаге они будут обнуляться, и к концу останется только последнее значение.
Важно: Скидка 10 % — это умножение на 0.9, а не вычитание 10. 2000 - 10 = 1990, а 2000 * 0.9 = 1800. Проценты в коде считают умножением на долю.
Частая ошибка: Обнулять переменную внутри цикла. Тогда к концу цикла в ней останется только последнее значение. Вторая ошибка — путать = и ==: = кладёт значение, == сравнивает.
Итог: Повторение короткими заданиями надёжнее, чем перечитывание теории. Один цикл может считать сумму, количество и готовить данные для условия.
Что дальше: В следующем уроке — коллекции и функции: список словарей и возврат значения.
prices = [300, 700, 1000]
total = 0
for price in prices:
total += price
print(total)
if total > 1000:
print(round(total * 0.9))В списке prices — цены трёх покупок. Выведите сумму всех цен, количество покупок дороже 500 и сумму со скидкой 10 %, если сумма больше 1000. Каждое значение — с новой строки.
Критерий успеха: Выведены 2000, 2 и 1800.