4.32M
Category: programmingprogramming

Программирование Python. Обработка ошибок и исключений

1.

DS
Программирование
Python
Обработка ошибок и исключений

2.

Введение
Тема
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

3.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

4.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

5.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

6.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

7.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

8.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
Нет, только число и строку, состоящую из цифр
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

9.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
Нет, только число и строку, состоящую из цифр
Можно ли использовать условный оператор if без оператора else?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

10.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
Нет, только число и строку, состоящую из цифр
Можно ли использовать условный оператор if без оператора else?
Да, можно
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

11.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
Нет, только число и строку, состоящую из цифр
Можно ли использовать условный оператор if без оператора else?
Да, можно
Можно ли использовать условный оператор elif без оператора if?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

12.

Введение
Тема
Что произойдет, если мы попытаемся целое число разделить на 0?
Увидим ошибку о делении на ноль - ZeroDivisionError
Какую ошибку увидим на экране, если попытаемся обратиться к
элементу списка по индексу, которого не существует?
Увидим ошибку IndexError
Функция int() может преобразовать любой объект в целое число?
Нет, только число и строку, состоящую из цифр
Можно ли использовать условный оператор if без оператора else?
Да, можно
Можно ли использовать условный оператор elif без оператора if?
Нет, нельзя
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

13.

Теория
Ошибки и исключения
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

14.

Теория
Ошибки и исключения
Синтаксическая ошибка – появляется, если написанный код не
соответствует правилам языка (например, не стоит отступ там,
где это нужно)
Исключение – появляется во время работы программы (например,
обращение к элементу списка по несуществующему индексу)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

15.

Теория
Ошибки и исключения
SyntaxError – синтаксическая ошибка в коде.
Например, data = [1, 2, 3 – появится ошибка из-за незакрытой
квадратной скобки
IndentationError – ошибка, возникающая из-за проблем с отступами.
Например,
if 2 + 2 > 3:
print('Здесь была математика')
В таком коде появится ошибка из-за того, что код внутри тела оператора if
должен выделяться отступом.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

16.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

17.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

18.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

19.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

20.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
print('Делить на ноль нельзя!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

21.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
print('Делить на ноль нельзя!')
else:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

22.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
print('Делить на ноль нельзя!')
else:
print(num_1 / num_2)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

23.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
print('Делить на ноль нельзя!')
else:
print(num_1 / num_2)
Если бы не было проверки на равенство нулю
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

24.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
if num_2 == 0:
print('Делить на ноль нельзя!')
else:
print(num_1 / num_2)
>>> ZeroDivisionError
Если бы не было проверки на равенство нулю
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

25.

Теория
Конструкция try-except
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

26.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

27.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
try: # код, где потенциально может возникнуть ошибка
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

28.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
try: # код, где потенциально может возникнуть ошибка
print(num_1 / num_2)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

29.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
try: # код, где потенциально может возникнуть ошибка
print(num_1 / num_2)
except: # обработка ошибки деления на ноль
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

30.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
num_1 = int(input())
num_2 = int(input())
try: # код, где потенциально может возникнуть ошибка
print(num_1 / num_2)
except: # обработка ошибки деления на ноль
print('Возникла ошибка')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

31.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
print(num_1 / num_2)
except: # обработка ошибки деления на ноль
print('Возникла ошибка')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

32.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
print(num_1 / num_2)
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

33.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
print(num_1 / num_2)
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
# обработка некорректного ввода
except ValueError:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

34.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
print(num_1 / num_2)
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
# обработка некорректного ввода
except ValueError:
print('Введено некорректное значение!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

35.

Теория
Конструкция try-except
try – блок кода, где могут возникнуть ошибки
except – блок кода, который выполняется при возникновении ошибки. Без
указания конкретной ошибки способен отлавливать все возникающие
ошибки и исключения.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

36.

Теория
Конструкция try-except-else
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

37.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
print(num_1 / num_2)
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
except ValueError: # обработка некорректного ввода
print('Введено некорректное значение!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

38.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
result = num_1 / num_2
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
except ValueError: # обработка некорректного ввода
print('Введено некорректное значение!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

39.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try: # код, где потенциально может возникнуть ошибка
num_1 = int(input())
num_2 = int(input())
result = num_1 / num_2
# обработка ошибки деления на ноль
except ZeroDivisionError:
print('На ноль делить нельзя!')
except ValueError: # обработка некорректного ввода
print('Введено некорректное значение!')
else: # если ошибок нет - выводим частное от деления
print(f'Частное от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

40.

Теория
Конструкция try-except-else
try – блок кода, где могут возникнуть ошибки
except – блок кода, который выполняется при возникновении ошибки. Без
указания конкретной ошибки способен отлавливать все возникающие
ошибки и исключения.
else – блок кода, который выполняется при отсутствии ошибок
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

41.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

42.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

43.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

44.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

45.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

46.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

47.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

48.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

49.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

50.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

51.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

52.

Задание №
2
«Второй шанс»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран остаток от деления первого числа на второе. Если происходит деление на ноль – вывести на
экран фразу «Делить на ноль нельзя, введите новое число:» и запросить новое число для ввода.
Если пользователь вводит некорректные значения для чисел – вывести на экран фразу «Введены
некорректные значения» и попросить пользователя указать оба числа заново.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

53.

Теория
Конструкция try-except-else-finally
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

54.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try:
num_1 = int(input())
num_2 = int(input())
result = num_1 / num_2
except ZeroDivisionError:
print('На ноль делить нельзя!')
except ValueError:
print('Введено некорректное значение!')
else:
print(f'Частное от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

55.

Задание №
1
«Деление на ноль»
На вход программе с клавиатуры подаются 2 натуральных числа. Программа должна вывести на
экран частное от деления первого числа на второе. Если второе число равно нулю – вывести на
экран фразу «Делить на ноль нельзя!».
try:
num_1 = int(input())
num_2 = int(input())
result = num_1 / num_2
except ZeroDivisionError:
print('На ноль делить нельзя!')
except ValueError:
print('Введено некорректное значение!')
else:
print(f'Частное от деления: {result}')
finally:
print('Работа программы закончена!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

56.

Теория
Конструкция try-except-else-finally
try – блок кода, где могут возникнуть ошибки
except – блок кода, который выполняется при возникновении ошибки. Без
указания конкретной ошибки способен отлавливать все возникающие
ошибки и исключения.
else – блок кода, который выполняется при отсутствии ошибок
finally – блок кода, который выполняется в любом случае
Возможные конфигурации блоков:
try-except
try-except-else
try-except-else-finally
try-except-finally
try-finally
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

57.

Задание №
3
«Второй шанс 2.0»
Доработайте программу с нахождением остатка от деления, используя блок finally для устранения
дублирования в коде.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
# повторно вводим второе число
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
except ValueError: # обработка некорректного ввода
print('Введены некорректные значения!')
# повторно вводим оба числа
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2 # повторно вычисляем остаток от деления
print(f'Остаток от деления: {result}')
else: # если ошибки отсутствуют - выводим остаток от деления
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

58.

Задание №
3
«Второй шанс 2.0»
Доработайте программу с нахождением остатка от деления, используя блок finally для устранения
дублирования в коде.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введено некорректны значения!')
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
finally:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

59.

Задание №
3
«Второй шанс 2.0»
Доработайте программу с нахождением остатка от деления, используя блок finally для устранения
дублирования в коде.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введено некорректны значения!')
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
finally:
result = num_1 % num_2
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

60.

Задание №
3
«Второй шанс 2.0»
Доработайте программу с нахождением остатка от деления, используя блок finally для устранения
дублирования в коде.
try: # код с вычислением остатка от деления
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
result = num_1 % num_2
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
except ValueError: # обработка некорректного ввода
print('Введено некорректны значения!')
num_1 = int(input('Введите первое число:'))
num_2 = int(input('Введите второе число:'))
finally:
result = num_1 % num_2
print(f'Остаток от деления: {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

61.

Теория
Конструкция try-except-else-finally
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

62.

Теория
Конструкция try-except-else-finally
Лог – специальный текстовый файл, в котором хранится
информация о действиях пользователя или программы.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

63.

Задание №
4
«Лог калькулятора»
На вход программе с клавиатуры вводится имя пользователя, после чего пользователь вводит одно
число, затем операцию, после вводит второе число. Программа работает с указанными числами и
операцией. Если возникают исключения – программа выводит информацию об этом на экран и
просит пользователя указать новые данные для работы. После ввода корректных данных
программа выводит результат вычислений на экран и спрашивает пользователя, хочет ли он
продолжать работать с калькулятором. В случае положительного ответа, пользователь продолжает
работать с калькулятором в прежней логике.
Программа также должна сохранять в текстовый файл log_calc.txt следующую информацию:
имя текущего пользователя
введенные пользователем данные
результаты вычислений
информацию об ошибках
новые данные от пользователя, если возникла ошибка
С каждым новым сеансом программа должна добавлять новую информацию в конец текстового
файла.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

64.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

65.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

66.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

67.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

68.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

69.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

70.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

71.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

72.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

73.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n’)
---------------------------------------------------------------------------
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

74.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n’)
---------------------------------------------------------------------------
print(eval('2 + 2'))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

75.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n’)
---------------------------------------------------------------------------
print(eval('2 + 2'))
>>> 4
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

76.

Теория
Конструкция try-except-else-finally
eval() – функция, принимающая выражение в виде строки и
выполняющая его.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

77.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

78.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

79.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

80.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

81.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

82.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
except ValueError: # обработка некорректного ввода чисел
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

83.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
except ValueError: # обработка некорректного ввода чисел
print('Введены некорректные значения!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

84.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
except ValueError: # обработка некорректного ввода чисел
print('Введены некорректные значения!')
num_1 = int(input('Введите первое число:')) # повторный ввод первого числа
num_2 = int(input('Введите второе число:')) # повторный ввод второго числа
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

85.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
except ValueError: # обработка некорректного ввода чисел
print('Введены некорректные значения!')
num_1 = int(input('Введите первое число:')) # повторный ввод первого числа
num_2 = int(input('Введите второе число:')) # повторный ввод второго числа
file.write(f'Ввод некорректных значений\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

86.

Задание №
4
name = input('Укажите свое имя:') # ввод имени пользователя
# открываем файл в режиме добавления
file = open('log_calc.txt', 'a', encoding='utf-8')
file.write(f'Пользователь: {name}\n')# запись в лог-файл введенного имени пользователя
while True: # цикл работы с калькулятором
try: # ввод данных пользователем и вычисление результата
num_1 = int(input('Введите первое число:')) # ввод чисел и знака операции
oper = input('Введите операцию (+ - * / ** // %):')
num_2 = int(input('Введите второе число:'))
# запись в лог-файл о числах и операции
file.write(f'Совершается операция: {num_1}{oper}{num_2}\n')
result = eval(f'{num_1}{oper}{num_2} ') # вычисление результата
except ZeroDivisionError: # обработка ошибки деления на ноль
num_2 = int(input('Делить на ноль нельзя, введите новое число:'))
file.write(f'Ошибка деления на ноль\n') # запись информации в лог-файл
file.write(f'Введено новое число: {num_2}\n')
except ValueError: # обработка некорректного ввода чисел
print('Введены некорректные значения!')
num_1 = int(input('Введите первое число:')) # повторный ввод первого числа
num_2 = int(input('Введите второе число:')) # повторный ввод второго числа
file.write(f'Ввод некорректных значений\n')
file.write(f'Введены новые числа: {num_1} и {num_2}\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

87.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

88.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

89.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

90.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

91.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

92.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

93.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

94.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

95.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
# если пользователь не хочет работать с калькулятором
if is_continue == 'N':
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

96.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
# если пользователь не хочет работать с калькулятором
if is_continue == 'N':
print('До свидания!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

97.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
# если пользователь не хочет работать с калькулятором
if is_continue == 'N':
print('До свидания!')
# закрываем файл и выходим из цикла
file.close()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

98.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
# если пользователь не хочет работать с калькулятором
if is_continue == 'N':
print('До свидания!')
# закрываем файл и выходим из цикла
file.close()
break
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

99.

Задание №
4
. . .
except SyntaxError: # обработка некорректного ввода операции
# повторный ввод операции
oper = input('Введите корретную операцию (+ - * / ** // %):')
file.write(f'Ввод некорректной операций\n') # запись информации в лог-файл
file.write(f'Введена новая операция: {oper}\n')
finally: # финальное вычисление результата и запрос новых данных от пользователя
result = eval(f'{num_1}{oper}{num_2}') # вычисление результатa
print(f'Результат операции: {num_1}{oper}{num_2} = {result}')
# запись информации в лог-файл
file.write(f'Результат: {num_1}{oper}{num_2} = {result}\n')
# запрос пользователю на продолжение работы
is_continue = input('Продолжить работу с калькулятором? (Y/N):')
# если пользователь не хочет работать с калькулятором
if is_continue == 'N':
print('До свидания!')
# закрываем файл и выходим из цикла
file.write('-------------------------------------\n')
file.close()
break
print('----------------------------')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

100.

ИТОГ
try – блок кода, где могут возникнуть ошибки
except – блок кода, который выполняется при возникновении ошибки. Без
указания конкретной ошибки способен отлавливать все возникающие
ошибки и исключения.
else – блок кода, который выполняется при отсутствии ошибок
finally – блок кода, который выполняется в любом случае
Возможные конфигурации блоков:
try-except
try-except-else
try-except-else-finally
try-except-finally
try-finally
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании

101.

DS
Программирование
Python
Спасибо за внимание!
English     Русский Rules