作者justim (透明石油)
看板Python
标题Re: [问题] 在输入字串中做四则运算
时间Sat Oct 20 14:02:16 2012
※ 引述《carlcarl (carl)》之铭言:
: ※ 引述《cantakeyeofu (不看你的眼)》之铭言:
: : 请教一下
: : 若使用者在raw_input()中输入类似这样:
: : 12+3
: : 10-7
: : 然後希望能印出15和3的四则运算结果
: : 应该如何把 "12" "+" "3" 这三个字元拆开来做计算? 谢谢
: 简单+-*/的话
: str = '15+3-2/1'
: re.split("[+-\/\*]", str)
: ['15', '3', '2', '1']
: re.split("\d+", str)
: ['', '+', '-', '/', '']
: # 前後两个空就自己处理掉
: 之後如果要处理括弧的话可能还要再改一下
: 不知道这样有没有什麽其他问题@@
: 接着再做中序转後序
: 最後用後序来算值
如果可以使用函式库的话,sympy 就可以直接帮忙运算了。
sympy 中的 N 函式可以评估运算式。
例如 N("1+2*3"),便可以直接算出结果。
甚至还可以把运算式转成 LaTex 输出。
除了四则运算外,连三角函式都可以帮你算。
N("sin(0.5 * 3.1415)")
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 223.143.122.8