Исключения
План рассказа
- Что такое стек вызовов
Что такое исключительная ситуация (int(), open(), 1/0)? пример
- Как можно поступать в этом случае? (return, print, exit, исключение, continuation)
- Как это сделано в питоне?
- Обработка (try .. except)
- Сворачивание стека (пример).
- Создание человеческих сообщений об ошибках. stderr.
- Выход из нескольких вложенных циклов.
- Типы исключений.
- Обработка (try .. finally)
- assert
Контрольная работа
- Фамилия:
Напишите функцию unique(items), которая получает на вход список из чисел или строк, который может содержать одинаковые элементы; и возвращает список из тех же элементов, не содержащий повторы, в любом порядке.
* Напишите функцию duplicate(items), которая получает на вход список из чисел или строк, который может содержать одинаковые элементы; и возвращает список из тех элементов входного списка, которые встречались в нём 2 раза и больше.
Задание
Памятка: задание – то, что обязательно выполнить для получения зачёта; упражнения – необязательные, но как правило задание решить проще, если сначала выполнить все упражнения; если вы меня пнёте, выдам вам комментарии про то, что и как лучше, и по заданию, и по упражнениям.
Напишите программу sum-sqrt.py, которая получает на вход таблицу из двух столбцов в формате CSV, и записывает выходной файл её же, добавляя 3-й колонкой квадратный корень из суммы первых двух, либо 4-й колонкой сообщение об ошибке, если случилась проблема (например, неправильно записано число, число отрицательное или неправильное число столбцов во входной таблице). Программа должна принимать аргументы командной строки: опция -i (--in-file) определяет имя входного файла; опция -o (--out-file) определяет имя выходного файла.
Пример входного файла:
2,2 3,-4 4,-3 hello,1 1,2,3 3,6
Для него выход должен быть примерно таким (с точностью до вида сообщений и количества лишних запятых):
2,2,2, ,,,need more than 0 values to unpack 3,-4,,math domain error 4,-3,1, hello,1,invalid literal for int () with base 0: 'hello' 1,2,,too many values to unpack 3,6,3,
Упражнения
...