From 4354371ac045264671d0b36a83f56c94c9dbd247 Mon Sep 17 00:00:00 2001 From: Dmitry Medvedev Date: Fri, 9 Oct 2026 02:02:13 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=94=D0=97=20"=D0=BE=D0=B1=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= =?UTF-8?q?=20=D0=B8=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../13.error_and_exception_handling.ipynb | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 dmedvedev/python/13.error_and_exception_handling.ipynb diff --git a/dmedvedev/python/13.error_and_exception_handling.ipynb b/dmedvedev/python/13.error_and_exception_handling.ipynb new file mode 100644 index 0000000..e144a29 --- /dev/null +++ b/dmedvedev/python/13.error_and_exception_handling.ipynb @@ -0,0 +1,231 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9b88d6f7", + "metadata": {}, + "source": [ + "Задача 1. Безопасное преобразование числа\n", + "Пользователь вводит число с клавиатуры.\n", + "Нужно:\n", + " попытаться преобразовать ввод в int;\n", + " если получилось — вывести:\n", + " само число;\n", + " его квадрат;\n", + " его удвоенное значение;\n", + " если не получилось — вывести сообщение об ошибке." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "66c30856", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "44\n", + "1936\n", + "88\n" + ] + } + ], + "source": [ + "a = input(\"vvedite 4islo s klaviaturi\")\n", + "try:\n", + " a = int(a)\n", + " print(a)\n", + " print(a ** 2)\n", + " print(a * 2)\n", + "except:\n", + " print(\"error\")" + ] + }, + { + "cell_type": "markdown", + "id": "7be390bd", + "metadata": {}, + "source": [ + "Задача 2. Деление чисел с разными ошибками\n", + "Напиши программу, которая:\n", + " просит пользователя ввести два числа;\n", + " первое число — делимое;\n", + " второе число — делитель;\n", + "пытается:\n", + " преобразовать оба значения в float;\n", + " выполнить деление;\n", + "обрабатывает ошибки:\n", + " если введено не число;\n", + " если попытались делить на ноль.\n", + "Если всё прошло успешно, вывести результат деления." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "259db03e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.0\n" + ] + } + ], + "source": [ + "a = input(\"vvedite pervoe 4islo - delimoe\")\n", + "b = input(\"vvedite vtoroe 4islo - delitel\")\n", + "try:\n", + " a = float(a)\n", + " b = float(b)\n", + " print(a / b)\n", + "except ValueError:\n", + " print(\"nevernii type of data\")\n", + "except ZeroDivisionError:\n", + " print(\"delenie na 0\")\n" + ] + }, + { + "cell_type": "markdown", + "id": "654327c9", + "metadata": {}, + "source": [ + "Задача 3. Обработка списка строк с числами\n", + "Дан список строк:\n", + "values= [\"10\",\"20\",\"abc\",\"40\",\"\",\"15\"]\n", + "\n", + "Нужно пройти по списку и для каждого элемента:\n", + " попытаться преобразовать его в число;\n", + " если получилось — вывести:\n", + " исходное значение;\n", + " число;\n", + " квадрат числа;\n", + " если не получилось — вывести сообщение, что элемент не удалось преобразовать.\n", + "В конце дополнительно вывести:\n", + " сколько элементов успешно обработано;\n", + " сколько элементов вызвали ошибку." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "15ba90bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "common text - 10\n", + "number - 10\n", + "sqr number - 100\n", + "common text - 20\n", + "number - 20\n", + "sqr number - 400\n", + "ne ydalos preobrazovat abc\n", + "common text - 40\n", + "number - 40\n", + "sqr number - 1600\n", + "ne ydalos preobrazovat \n", + "common text - 15\n", + "number - 15\n", + "sqr number - 225\n", + "uspeshno obrabotano 4\n", + "oshibok sdelano 2\n" + ] + } + ], + "source": [ + "values = [\"10\",\"20\",\"abc\",\"40\",\"\",\"15\"]\n", + "success = 0\n", + "errors = 0\n", + "for i in values:\n", + " try:\n", + " a = int(i)\n", + " print(f\"common text - {i}\")\n", + " print(f\"number - {a}\")\n", + " print(f\"sqr number - {a**2}\")\n", + " success += 1\n", + " except ValueError:\n", + " print(f\"ne ydalos preobrazovat {i}\")\n", + " errors += 1\n", + "print(f\"uspeshno obrabotano {success}\")\n", + "print(f\"oshibok sdelano {errors}\")" + ] + }, + { + "cell_type": "markdown", + "id": "51101218", + "metadata": {}, + "source": [ + "Задача 4. Использование else и finally\n", + "Попроси пользователя ввести целое число.\n", + "Программа должна:\n", + " в блоке try попытаться преобразовать ввод в int;\n", + " в except обработать ошибку ввода;\n", + " в else вывести:\n", + " число;\n", + " его куб;\n", + " сообщение, что операция выполнена успешно;\n", + "в finally вывести:\n", + " \"Программа завершила попытку обработки\"." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "f2a891bd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "27\n", + "операция выполнена успешно\n", + "программа завершила попытку обработки\n" + ] + } + ], + "source": [ + "a = input(\"введите целое число\")\n", + "try:\n", + " a = int(a)\n", + "except ValueError:\n", + " print(\"ошибка ввода\")\n", + "else:\n", + " print(a)\n", + " print(a**3)\n", + " print(\"операция выполнена успешно\")\n", + "finally:\n", + " print(\"программа завершила попытку обработки\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}