добавлено ДЗ "обработка ошибок и исключений"
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user