Re: [問題] 在輸入字串中做四則運算

看板Python作者 (透明石油)時間11年前 (2012/10/20 14:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #1GWZvhj1 (Python)
文章代碼(AID): #1GWZvhj1 (Python)