Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import re
  3. def Trigonometry(text):
  4. operations=("^", '\u22c5', '\u22c5', '\u22c4', '\u2217', '\u2218', '\u2219', '\u22c7', "**")
  5. trig_funcs=['arcsin', 'arccos', 'arctg', 'arcctg', 'arctan', 'arcctan', 'sin', 'cos', 'tg', 'ctg', 'tan', 'ctan']
  6. result=''
  7. power=''
  8. arg=''
  9. argumen=''
  10. power_after_arg=False
  11. for one_fun in trig_funcs:
  12. if text.find(one_fun)!=-1:
  13. fun=one_fun
  14. text=text[len(fun):]
  15. break
  16. for i in operations:
  17. line=text.lower().replace(' ', '')
  18. if line.find(i)!=-1 and line[:text.find(i)]!='':
  19. power_after_arg=True
  20. # power = re.findall(r'\^\w*\d*', text)
  21. result = re.findall(r'\w+\d*', text)
  22. print(result)
  23. for i in range(len(result)):
  24. for j in result[i]:
  25. if i==0 and j in '1234567890qwertyuiopasdfghjklzxcvbnm+-' and power_after_arg==False:
  26. power+=j
  27. elif i==1 and j in '1234567890qwertyuiopasdfghjklzxcvbnm+-' and power_after_arg==True:
  28. power+=j
  29. elif j in '1234567890qwertyuiopasdfghjklzxcvbnm+-':
  30. arg+=j
  31. argumen=arg[:1]
  32. powerFul=power[:1]
  33. for i in power[1:]:
  34. if i in 'qwertyuiopasdfghjklzxcvbnm':
  35. powerFul+='*'+i
  36. else:
  37. powerFul+=i
  38. for i in arg[1:]:
  39. if i in 'qwertyuiopasdfghjklzxcvbnm':
  40. argumen+='*'+i
  41. else:
  42. argumen+=i
  43. if power=='':
  44. return (fun+'('+argumen+')')
  45. else:
  46. return (fun+'('+argumen+')**'+'('+powerFul+')')
  47.  
  48.  
  49. print(Trigonometry('cos^2 2x'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement