Дмитрий Одиссеев – Справочник Python (страница 5)
Print(“Внутри!”)
Inner()
Исключения
Try – пытаемся выполнить
Except – ловим ошибку и пишем
Базовая конструкция try-except
Try:
Number = int(input(“Введите число: “))
Except ValueError:
Print(“Это не число!”)
Обработка нескольких ошибок
Try:
F = open(“data.txt”)
Content = f.read()
Except FileNotFoundError:
Print(“Файл не найден”)
Except IOError:
Print(“Ошибка при чтении”)
Обработчик finally
Он выполняется всегда, даже если выдает ошибку. В этом случае он закрывает файл.
Try:
F = open(“data.txt”)
# операции
Except:
Print(“Ошибка”)
Finally:
f.close() # выполняется всегда, даже при ошибке
Создание своих исключений
Raise позволяет вручную вызвать исключение.
Def check_age(age):
If age < 0:
Raise ValueError(“Возраст не может быть отрицательным”)
Check_age(-5) # вызовет ошибку
Отработка по типу ошибки
Try:
X = 1 / 0
Except ZeroDivisionError as e:
Print(f”Ошибка деления: {e}”)
Lambda функции (анонимные)
Это однострочная анонимная функция без имени. Подходит чтобы совершить быстрое действие без присваивании и объявлений в коде переменных
Square = lambda x: x ** 2
Print(square(5)) # 25 # можно так но эффективно будет функцию задать в print без переменной.
Примеры использования
С map
Nums = [1, 2, 3]
Squares = list(map(lambda x: x ** 2, nums))
Print(squares) # [1, 4, 9]
C filter
Nums = [5, 8, 11, 3]
Evens = list(filter(lambda x: x % 2 == 0, nums))
Print(evens) # [8]
Сортировка по условию
Data = [(1, “А”), (3, “B”), (2, “C”)]
Sorted_data = sorted(data, key=lambda item: item[0])
Print(sorted_data) # [(1, ‘А’), (2, ‘C’), (3, ‘B’)]
Если логика функции сложная или огромная, то здесь она не пригодится.
Дополнение к прошлым командам
Списки list
Append()
Добавляет элемент в конец списка
Names.append(“Игорь”)
Extend()
Добавляет несколько элементов сразу
Nums.extend([4, 5])
Insert()
Вставляет элемент по индексу