Quick actions

cmd+k|ctrl+k

Navigation

Languages

Калькулятор

Snippet info

Language

Python

Visibility

public

Author

amatov

Created

2017-01-25T11:19:42Z

Updated

2017-01-25T14:58:23Z

import re

while True:
    
    input_data = input()
    operators = ['+', '-', '*', '/']
    if input_data.strip() == 'q': break
    l_task = [i.strip() for i in re.split("(\d+\.*\d*)", input_data) if i != '']
    
    print(l_task)
    for i, v in enumerate(l_task):
        if i % 2 == 0 and not isinstance(float(v), float):
            print("Операнд %d не является числом" % ((i + 2) / 2))
        if i % 2 != 0 and v not in operators:
            print("Введён некорректный оператор %d" % ((i + 1) / 2))
    res = float(l_task[0]);
    for i in range(1, len(l_task), 2):
        if  l_task[i] == operators[0]:
            res += float(l_task[i+1])
        elif l_task[i] == operators[1]:
            res -= float(l_task[i+1])
        elif l_task[i] == operators[2]:
            res *= float(l_task[i+1])
        elif l_task[i] == operators[2]:
            res /= float(l_task[i+1])
            
    print("%.4f" % res)
    
    
    
    
INFO