t | class AssignmentError(Exception): | t | class AssignmentError(Exception): |
| pass | | pass |
| vars_dict = {} | | vars_dict = {} |
| while (line := input().strip()): | | while (line := input().strip()): |
| if not line[0] == '#': | | if not line[0] == '#': |
| try: | | try: |
| if '=' in line: | | if '=' in line: |
| expression = line.split('=', 1) | | expression = line.split('=', 1) |
| var, value = (expression[0].strip(), expression[1].strip | | var, value = (expression[0].strip(), expression[1].strip |
| ()) | | ()) |
| if var.isidentifier(): | | if var.isidentifier(): |
| vars_dict[var] = eval(value, vars_dict) | | vars_dict[var] = eval(value, vars_dict) |
| else: | | else: |
| raise AssignmentError | | raise AssignmentError |
| else: | | else: |
| print(eval(line, {'__builtins__': {}}, vars_dict)) | | print(eval(line, {'__builtins__': {}}, vars_dict)) |
| except AssignmentError: | | except AssignmentError: |
| print('Assignment error') | | print('Assignment error') |
| except SyntaxError: | | except SyntaxError: |
| print('Syntax error') | | print('Syntax error') |
| except NameError: | | except NameError: |
| print('Name error') | | print('Name error') |
| except: | | except: |
| print('Runtime error') | | print('Runtime error') |