Guest User

Untitled

a guest
Jan 22nd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. expr = "(32+54)*342-(4*(3-9))"
  2.  
  3. ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
  4.  
  5. l = list(expr)
  6. n = ''
  7. expr = []
  8. try:
  9. for c in l:
  10. if c in string.digits:
  11. n += c
  12. else:
  13. if n != '':
  14. expr.append(n)
  15. n = ''
  16. expr.append(c)
  17. finally:
  18. if n != '':
  19. expr.append(n)
  20.  
  21. >>> import re
  22. >>> expr = "(32+54)*342-(4*(3-9))"
  23. >>> re.split("([-()+*/])", expr)
  24. ['', '(', '32', '+', '54', ')', '', '*', '342', '-', '', '(', '4', '*', '', '(', '3', '-', '9', ')', '', ')', '']
  25.  
  26. >>> [part for part in re.split("([-()+*/])", expr) if part]
  27. ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
  28.  
  29. >>> [x[1] for x in tokenize.generate_tokens(StringIO.StringIO('(32+54)*342-(4*(3-9))').readline)]
  30. ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')', '']
  31.  
  32. >>> if True:
  33. exp=[]
  34. expr = "(32+54)*342-(4*(3-9))"
  35. flag=False
  36. for i in expr:
  37. if i.isdigit() and flag:
  38. exp.append(str(exp.pop(len(exp)-1))+i)
  39. elif i.isdigit():
  40. flag=True
  41. exp.append(i)
  42. else:
  43. flag=False
  44. exp.append(i)
  45. print(exp)
  46.  
  47.  
  48. ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
  49. >>>
Add Comment
Please, Sign In to add comment