💻 Практические примеры

⚡ Минимальный рабочий пример

text = "  Hello, Python!  "
print(text.strip().lower().replace("python", "мир"))

Этот код сначала убирает пробелы по краям, приводит строку к нижнему регистру и заменяет "python" на "мир".

ЗадачаМетод
Регистрupper(), lower(), title(), capitalize()
Поискfind() → -1, index() → ValueError
Заменаreplace(old, new)
Разбить / собратьsplit() / "-".join(list)
Проверка содержимогоisalpha(), isdigit(), istitle()
Топ-3 ошибки: попытка изменить строку по индексу (TypeError) · забыть присвоить результат метода новой переменной · перепутать find() и index().

Пример 1: методы регистра

Демонстрация различных способов изменения регистра.

📄 examples/case_demo.py
text = "Hello, worlD!"

print(text.upper())       # HELLO, WORLD!
print(text.lower())       # hello, world!
print(text.capitalize())  # Hello, world!
print(text.title())       # Hello, World!
print(text.swapcase())    # hELLO, WORLd!

Пример 2: поиск подстроки

Используем find(), index() и count().

📄 examples/search_demo.py
text = "Python is awesome. Python is dynamic."

print(text.find("Python"))   # 0
print(text.rfind("Python"))  # 19
print(text.find("Java"))     # -1

print(text.count("Python"))  # 2
print(text.count("is"))      # 2

# Безопасная проверка через find
if text.find("Java") != -1:
    print("Java найдена")
else:
    print("Java не найдена")

Пример 3: замена и разделение

Заменяем подстроки и разбиваем строку на части.

📄 examples/replace_split.py
text = "I love Python, Python is great"
new_text = text.replace("Python", "Java")
print(new_text)

fruits = "apple,banana,cherry"
print(fruits.split(","))

multi = "apple---banana---cherry"
print(multi.split("---", 1))

Пример 4: split() против split(" ")

Важное отличие между разделением по любым пробелам и по одному пробелу.

📄 examples/split_difference.py
text = "apple     banana\t cherry\n"

print(text.split())      # ['apple', 'banana', 'cherry']
print(text.split(" "))   # ['apple', '', '', '', '', 'banana\t', 'cherry\n']

Пример 5: очистка строки от лишних символов

Удаляем пробелы и произвольные символы с краёв строки.

📄 examples/strip_demo.py
raw = "\t  hello world\n  "
print(f"[{raw.strip()}]")

stars = "***hello***"
print(stars.strip("*"))

mixed = "**--*hello---***"
print(mixed.strip("*-"))
Проверить по документации: f-strings используются для удобного форматирования вывода; они выходят за рамки исходного занятия.

Пример 6: проверка содержимого строки

Предикаты помогают проверить, из чего состоит строка.

📄 examples/predicate_demo.py
print("Hello".isalpha())              # True
print("Python3".isalpha())            # False
print("12345".isdigit())              # True
print("12345.1".isdigit())            # False
print("Hello World".istitle())        # True
print("hello world".startswith("he")) # True
print("hello world".endswith("ld"))   # True

Пример 7: объединение списка строк

Метод join() собирает список в строку.

📄 examples/join_demo.py
words = ["Python", "is", "awesome"]
print(" ".join(words))
print("-".join(words))
print("".join(words))

# Создание CSV-строки из списка чисел
numbers = [1, 2, 3, 4]
csv = ",".join(str(n) for n in numbers)
print(csv)
Проверить по документации: генераторные выражения выходят за рамки исходного занятия.

Пример 8: звёздочки вместо цифр

Задание 1 из практических заданий: заменить все цифры в строке на *.

📄 examples/stars_instead_digits.py
text = "My number is 123-456-789"
result = ""

for char in text:
    if char.isdigit():
        result += "*"
    else:
        result += char

print(f"Строка: {text}")
print(f"Результат: {result}")

Логика: isdigit() проверяет каждый символ по очереди; цифры заменяются на *, остальные символы копируются без изменений.

Пример 9: повторяющиеся символы

Задание 2 из практических заданий: найти символы, встречающиеся более одного раза, без учёта регистра, и вывести каждый только один раз.

📄 examples/repeated_chars.py
text = "Programming in python"
lowered = text.lower()
seen = set()

print(f"Строка: {text}")
for char in lowered:
    if char not in seen and lowered.count(char) > 1:
        print(f"Символ '{char}' встречается {lowered.count(char)} раз(а)")
        seen.add(char)

Как проверить себя: set() хранит уже выведенные символы, чтобы не показать один и тот же символ дважды; count() считает, сколько раз символ встречается во всей приведённой к нижнему регистру строке.

Пример 10: числа в строке, умноженные на 10

Задание 3 из практических заданий: найти в строке числа и заменить их на результат умножения на 10, не трогая остальной текст.

📄 examples/multiply_numbers.py
text = "I have 5 apples and 10 oranges, price is 0.5 each. Card number is ....3672."
new_words = []

for word in text.split():
    try:
        number = float(word)
        new_words.append(str(number * 10))
    except ValueError:
        new_words.append(word)

print(" ".join(new_words))

Почему так: try/except ValueError отделяет слова, которые являются числами, от остальных — float("....3672.") вызвал бы исключение, поэтому такое слово остаётся без изменений. Похожий приём — ловить конкретное исключение вместо ручной проверки — уже встречался в Ошибки урока, ошибка 3, только там речь про ValueError у index().

Пример 11: выравнивание строк и удаление префикса/суффикса

Методы для форматированного вывода и очистки строк по шаблону, которых нет в исходном занятии, но которые часто нужны на практике.

📄 examples/padding_and_affixes.py
label = "42"
print(label.zfill(5))          # 00042

print("Py".center(10, "-"))    # ----Py----
print("Py".ljust(10, "."))     # Py........
print("Py".rjust(10, "."))     # ........Py

filename = "lesson_20_string_methods.py"
print(filename.removesuffix(".py"))        # lesson_20_string_methods
print(filename.removeprefix("lesson_20_")) # string_methods.py
Проверить по документации: zfill(), center(), ljust(), rjust(), removeprefix() и removesuffix() выходят за рамки исходного занятия.

Как запустить в VS Code

  1. Создайте файл example.py в папке урока.
  2. Скопируйте код из примера выше.
  3. Откройте терминал в VS Code (Ctrl + `).
  4. Активируйте виртуальное окружение: venv\Scripts\activate (Windows) или source venv/bin/activate (Mac/Linux).
  5. Запустите: python example.py