Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Напишите программу, которая вычисляет значение арифметического выражения, записанного в виде символьной строки. В выражении используются целые числа, знаки арифметических операций, круглые скобки и вызовы функций ( sin , cos , abs , sqrt ). Результат операции деления – вещественное число.
- Входные данные
- На вход программы поступает символьная строка, содержащая правильную запись арифметического выражения.
- Выходные данные
- Программа должна вывести значение переданного ей выражения как вещественное число. При выводе результата нужно оставить 3 знака в дробной части числа.
- Примеры
- входные данные
- 12+cos(sqrt(12+sin(2)))
- выходные данные
- 11.100 '''
- '''for x in a[::-1]:
- # слева строка
- 'sqrt' if 'cos':
- cos(int('2'))
- # слева список
- [-1] if 'cos':
- cos(int('2'))'''
- import math
- def del_empty_str(strings)
- return [x for x in strings if x]
- def function (f, n): #f(n)
- if f=='sin':
- return(math.sin(n))
- if f=='cos':
- return(math.cos(n))
- if f=='sqrt':
- return(math.sqrt(n))
- if f=='abs':
- return(math.abs(n))
- a = str(input()).replace('(', '.').replace(')', '.').split('.')
- print(a)
- # a = ['12+c', 's', '', '12s', '2']
- b = ['+','-','*','/']
- for i, x in enumerate(a):
- for j in b:
- if j in x:
- a[i]=a[i].split(j) # ['12', 'cos'] -> ['12', 'cos', '+']
- a[i].insert(1, j)
- print(a)
- # [['12', '+','cos'], 'sqrt', ['12', '+', 'cos'], '2', '', '', '']
- a = del_empty_str(a)
- #for x in a:
- # for i in x:
- # if i in ('+','-','*','/'):
- # for j in a:
- # a=a.split(i)
- # b.append(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement