Python Math: анализируйте математические формулы и заключайте в скобки умножение и деление

Python Math: Упражнение 60 с решением

Напишите программу Python для анализа математических формул и заключите в скобки умножение и деление.

Пример решения : —

Код Python:

  #https:// gist.github.com/ohaz/ed0b14a487b0569aad2dimport astdef recurse (node): if isinstance (node, ast.BinOp): if isinstance (node.op, ast.Mult) или isinstance (node.op, ast.Div): print (  '(', end = '') recurse (node.left) recurse (node.op) recurse (node.right) if isinstance (node.op, ast.Mult) или isinstance (node.op, ast.Div):  print (')', end = '') elif isinstance (node, ast.Add): print ('+', end = '') elif isinstance (node, ast.Sub): print ('-', end =  '') elif isinstance (node, ast.Mult): print ('*', end = '') elif isinstance (node, ast.Div): print ('/', end = '') elif isinstance (node,  ast.Num): print (node.n, end = '') else: для дочернего элемента в ast.iter_child_nodes (node): recurse (child) def search_expr (node): returns = [] для дочернего элемента в ast.iter_child_nodes (node  ): если isi  nstance (child, ast.Expr): return child returns.append (search_expr (child)) для ret в return: if isinstance (ret, ast.Expr): return ret return Noneformula = '4 + 5 * 7/2'a  = ast.parse (formula) expr = search_expr (a), если expr не равно None: recurse (expr) print ()  

Пример вывода:

 4 + ((5 * 7)/2) 

Блок-схема:

Редактор кода Python:

Оцените статью
nanomode.ru
Добавить комментарий