📜 Классический подход из занятия
1. Очистка строки вручную
📄 examples/classic_clean.py
text = "Hello, World! 2025..."
result = ""
for char in text:
if char.isalnum() or char.isspace():
result += char
print(result)
2. Замена цифр на звёздочки
📄 examples/classic_stars.py
text = "My number is 123-456-789"
result = ""
for char in text:
if char.isdigit():
result += "*"
else:
result += char
print(result)
3. C-style форматирование
📄 examples/classic_format.py
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))
✅ Рекомендуемый современный вариант
1. Очистка строки через генераторное выражение
📄 examples/modern_clean.py
text = "Hello, World! 2025..."
result = "".join(char for char in text if char.isalnum() or char.isspace())
print(result)
2. Замена цифр через генераторное выражение
📄 examples/modern_stars.py
text = "My number is 123-456-789"
result = "".join("*" if char.isdigit() else char for char in text)
print(result)
3. Форматирование через f-strings
📄 examples/modern_format.py
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
Преимущества современного стиля:
- Меньше кода — меньше возможностей для ошибок.
- Методы строк и f-strings реализованы эффективно.
- Читаемость: код ближе к описанию задачи.
- Генераторные выражения и f-strings заменяют громоздкие циклы и конкатенацию.
🕰️ Когда классический подход всё ещё полезен
- На начальном этапе обучения — чтобы понять, как устроены алгоритмы.
- Когда встроенного метода недостаточно, например, нужна нестандартная логика.
- Когда важно обработать каждый элемент отдельно и собрать сложный результат.
🔍 Как распознать устаревший код
Если цикл только перебирает символы для выполнения стандартной операции, его часто можно заменить:
text = "Hello, World! 2025..."
# устаревший подход
result = ""
for char in text:
if char.isalnum() or char.isspace():
result += char
print("classic:", result)
# современный подход
result = "".join(char for char in text if char.isalnum() or char.isspace())
print("modern:", result)
Проверить по документации: генераторные выражения и f-strings в данном контексте выходят за рамки исходного занятия. Подробности — в разделе Ресурсы.