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

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

text = input("Введите строку: ")
for char in text:
    print(char, end=" ")

Этот код выводит символы строки через пробел. В примерах ниже — более сложные задачи из практикума.

Пример 1: Перевёрнутая лестница

Рисуем линию из звёздочек убывающей длины с помощью range(height, 0, -1).

📄 examples/reverse_stairs.py
height = int(input("Введите высоту лестницы: "))

for i in range(height, 0, -1):
    print("*" * i)

Что происходит:

  1. Читаем высоту и преобразуем в целое число.
  2. range(height, 0, -1) генерирует числа от height до 1 включительно.
  3. Оператор * повторяет строку "*" нужное число раз.

Пример 2: Проверка текста на ASCII

Проверяем, что код каждого символа не превышает 127, и прерываем цикл при первом нарушении.

📄 examples/ascii_check.py
text = input("Введите текст: ")

all_ascii = True
for char in text:
    if ord(char) > 127:
        all_ascii = False
        break

print("Все символы ASCII:", all_ascii)
Проверить по документации: в Python есть метод str.isascii(), который делает то же самое. Для учебной задачи полезно понять логику вручную, но в реальном коде достаточно text.isascii().

Пример 3: Вывод строки с интервалами

Символы выводятся через пробел, но без лишнего пробела в конце. Авторское решение использует индекс и end.

📄 examples/spaced_output.py
text = input("Введите строку: ")

for i in range(len(text)):
    if i == len(text) - 1:
        print(text[i], end="")
    else:
        print(text[i], end=" ")

Современный вариант:

📄 examples/spaced_output_modern.py
text = input("Введите строку: ")
print(*text, sep=" ")
Проверить по документации: распаковка аргументов *text в print() и параметр sep выходят за рамки исходной практики.

Пример 4: Проверка скобок

Считаем баланс открывающих и закрывающих круглых скобок. Если баланс уходит в минус — скобки расставлены неправильно.

📄 examples/parenthesis_balance.py
text = input("Введите строку: ")
balance = 0

for char in text:
    if char == "(":
        balance += 1
    elif char == ")":
        balance -= 1
    if balance < 0:
        break

print("Скобки расставлены правильно?", balance == 0)

Пример 5: Проверка палиндрома с фильтрацией

Оставляем только русские и английские буквы, приводим к нижнему регистру и сравниваем строку с её перевёрнутой копией.

📄 examples/palindrome_filter.py
text = input("Введите строку: ")
filtered_text = ""

for char in text:
    if ("A" <= char <= "Z") or ("a" <= char <= "z") or \
       ("А" <= char <= "Я") or ("а" <= char <= "я"):
        if "A" <= char <= "Z":
            char = chr(ord(char) + 32)
        elif "А" <= char <= "Я":
            char = chr(ord(char) + 32)
        filtered_text += char

is_palindrome = filtered_text == filtered_text[::-1]
print("Палиндром?", is_palindrome)
Проверить по документации: методы str.isalpha() и str.lower() распознают буквы любого алфавита и позволяют записать фильтрацию короче. Это выходит за рамки исходной практики, но рекомендуется в современном коде.

Как запустить в 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