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

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

# safe_input.py
try:
    number = int(input("Введите целое число: "))
    print(f"Вы ввели: {number}")
except ValueError:
    print("Ошибка: нужно целое число.")

Перехватываем ValueError и сообщаем пользователю о некорректном вводе.

Пример 1. Базовый try/except

# example_01_basic.py
try:
    result = 10 / 0
    print("Эта строка не выполнится")
except ZeroDivisionError:
    print("Ошибка: деление на ноль!")

print("Программа продолжает работу")

Пример 2. Полная конструкция

# example_02_full.py
try:
    number = int(input("Введите число: "))
    result = 10 / number
except ValueError:
    print("Некорректное значение.")
except ZeroDivisionError:
    print("Деление на ноль.")
else:
    print(f"Результат: {result}")
finally:
    print("Программа завершена.")

Пример 3. raise с обработкой

# example_03_raise.py
while True:
    try:
        number = int(input("Введите положительное число: "))
        if number < 0:
            raise ValueError("Число не может быть отрицательным")
        print(f"Принято: {number}")
        break
    except ValueError as e:
        print(f"Ошибка: {e}. Попробуйте снова.")

Пример 4. Логирование в файл

# example_04_logging.py
import logging

logging.basicConfig(
    filename="app.log",
    format="%(asctime)s - %(filename)s - %(lineno)d - %(levelname)s - %(message)s",
    level=logging.ERROR,
)

try:
    result = 10 / 0
except ZeroDivisionError as e:
    logging.error(f"Ошибка при делении: {e}")
    print("Произошла ошибка, подробности в app.log")

Пример 5. Работа с путями

# example_05_paths.py
import os

filename = "example.txt"
print("Существует:", os.path.exists(filename))
print("Это файл:", os.path.isfile(filename))
print("Абсолютный путь:", os.path.abspath(filename))
print("Имя файла:", os.path.basename("/home/user/docs/file.txt"))
print("Соединённый путь:", os.path.join("folder", "subfolder", "file.txt"))

Пример 6. Рекурсивный поиск файлов

# example_06_walk.py
import os

extension = ".txt"
for root, dirs, files in os.walk("."):
    for file in files:
        if file.endswith(extension):
            full_path = os.path.join(root, file)
            print(f"Найден файл: {full_path}")

Пример 7. Аргументы командной строки

# example_07_argv.py
import sys

print("Все аргументы:", sys.argv)

if len(sys.argv) != 2:
    print("Использование: python example_07_argv.py <имя_файла>")
    sys.exit(1)

target = sys.argv[1]
print(f"Ищем файл: {target}")

Пример 8. Чтение файла с обработкой ошибок

# example_08_read_file.py
import os

filename = "data.txt"

if not os.path.exists(filename):
    print(f"Файл {filename} не найден.")
else:
    try:
        with open(filename, "r", encoding="utf-8") as file:
            content = file.read()
            print(content)
    except UnicodeDecodeError as e:
        print(f"Ошибка кодировки: {e}")
⚠️ Проверить по документации: менеджер контекста with для работы с файлами не разбирается в исходной лекции, но является рекомендуемым способом гарантировать закрытие файла.

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

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