-
Notifications
You must be signed in to change notification settings - Fork 0
/
lesson_10.py
43 lines (36 loc) · 1.32 KB
/
lesson_10.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class WrongSymbolException(Exception):
def search_exception_mark(mark):
marks = ('+', '-', '*', '**', '/', '//', '%')
if mark != [symbol for symbol in marks]:
print('Это что за символы? Я с ними работать не буду')
def get_data():
first = float(input("Первое число: "))
mark = input("Знак вычисления: ")
second = float(input("Второе число: "))
return first, mark, second
try:
first, mark, second = get_data()
if mark == '+':
print(first+second)
elif mark == '-':
print(first-second)
elif mark == '*':
print(first*second)
elif mark == '**':
print(first**second)
elif mark == '/':
print(first/second)
elif mark == '//':
print(first//second)
elif mark == '%':
print(first%second)
raise (WrongSymbolException)
except ZeroDivisionError:
print('На ноль делить нельзя')
except TypeError as e:
print(e)
print('Кажется, был указан не тот знак при вводе')
except ValueError:
print('Что за фигня? Тут должны быть цифры и знаки вычисления')
except WrongSymbolException:
WrongSymbolException.search_exception_mark(mark=mark)