Re: [問題] 在輸入字串中做四則運算
※ 引述《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
討論串 (同標題文章)