🏠 Домашнее задание

⚡ Кратко

Создайте отдельную папку для урока.

Каждую задачу держите в отдельном файле или разделяйте явными комментариями.

Запускайте код из терминала VS Code и проверяйте вывод на примерах из источника.

Топ-3 ошибки: путать ссылку и копию; ожидать порядок там, где его нет; усложнять выражение, когда обычный цикл читается лучше.

Подготовка окружения

  1. Создайте папку lesson_31.
  2. Создайте файлы task_1.py, task_2.py и так далее.
  3. Запускайте файл командой python task_1.py.
  4. После решения измените входные данные и убедитесь, что логика не привязана только к примеру.

Домашнее задание 1. Разбор ДЗ 15: одно слово

Повторите фильтрацию строк без пробелов и приведение к нижнему регистру.

text_list = ["Hello", "Python Programming", "World", "Advanced Topics", "Simple"]
processed = [text.lower() for text in text_list if len(text.split()) == 1]
print("Обработанный список:", processed)

Домашнее задание 2. Разбор ДЗ 15: цены

Добавьте новую цену во вложенные списки товаров и выведите таблицу.

products = [["Laptop", 1200], ["Mouse", 25], ["Keyboard", 75], ["Monitor", 200]]
discount = 17

for product in products:
    product.append(product[1] * (1 - discount / 100))

for name, old_price, new_price in products:
    print(f"{name:<10} {old_price:>8.2f}$ {new_price:>8.2f}$")

Домашнее задание 3. Разбор ДЗ 16: скобки

Проверьте правильность скобок через стек.

from collections import deque

string = "([({}()){}])"
pairs = {")": "(", "]": "[", "}": "{"}
stack = deque()
valid = True

for char in string:
    if char in pairs.values():
        stack.append(char)
    elif char in pairs and (not stack or stack.pop() != pairs[char]):
        valid = False
        break

print("Валидны:", valid and not stack)