-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathabnormal_knw.py
More file actions
38 lines (32 loc) · 1.11 KB
/
abnormal_knw.py
File metadata and controls
38 lines (32 loc) · 1.11 KB
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
# 自定义异常
class SELF_DEF_EXCEPTION(Exception):
def __init__(self, message, context=None):
super().__init__(message)
self.context = context
def calculater(num1, op, num2): # 定义函数calculater,接收三个参数num1, op, num2
match op:
case '+':
return num1 + num2
case '-':
return num1 - num2
case '*':
return num1 * num2
case '/':
try:
return num1 / num2
except ZeroDivisionError as e: # 捕获除数为0的异常
# 手动引发异常
raise SELF_DEF_EXCEPTION('不能除0') # 返回自定义的异常信息
except ValueError as e:
raise SELF_DEF_EXCEPTION('invalid number') # 返回异常信息
case '%':
return num1 % num2
case '**':
return num1 ** num2
case _:
return 'Invalid operator'
num1 = eval(input('Enter an number: '))
op = input('Enter an operator: ')
num2 = eval(input('Enter another number: '))
cal1 = calculater(num1, op, num2)
print(cal1)