2013-12-16 33 views
1

我需要以某種數學input(str)轉換爲數字的輸入,分裂成更小的片段

例如

4-3*2-1+5 = ((((4-3)*2)-1)+5). 

當前的代碼如下所示:

Answer = input ('Put your answer here: ') 
4-3*2-1+5 

不知怎的,我需要重拍字符串中的小片段,它讀取由左到右,並以整數重拍的數字,但我不知道該怎麼做。

我試着做

Answer.split('+','-','*','/') 

但它說TypeError: split() takes at most 2 arguments (4 given)

還試圖將回答一個列表,看看是否能幫助我的人:

li.append(Answer) 
(li = ['4-3*2-1+5'] 

但我不t看到任何有利的東西..

請幫助!

(我是SOF新手,所以如果有任何信息丟失,請告訴我什麼,我會嘗試糾正它)。

+1

請不要兩次提問。如果您需要澄清,請在您的原始問題 – goncalopp

+0

上提及,我剛剛看到了重複內容:/我不確定OP想要什麼:)無論他是在嘗試執行簡單的字符串操作還是編寫表達式解析器和評估程序! –

+0

僅僅點擊「編輯」並重新創建整個文本就感覺不對,但它基本上是一樣的問題。我第一次沒有正確地問這個問題,因爲我在編程時就這麼做了。我確實覺得這是比較準確的。 – user3106855

回答

0

你需要寫什麼是解析器和簡單evaulator簡單表達式

我就開始閱讀下列任何一項:

還有許多其他解析器 libraires,但這些都只是一對夫婦。

你也可以只使用rply庫,如果你看看的PyPI頁面有直接實現和簡單的表達式解析器和評價主體,就像你在你的問題描述什麼的例子。

+0

如何在代碼中編寫此代碼?我是編程新手,從來沒有聽說過解析。看着網站,聽不懂.. :( – user3106855

+0

歡迎來到精彩的編程世界!開始學習吧!您正在使用一種名爲Python的編程語言,它具有Lexer,Parser,語義分析器,編譯器,解釋器和虛擬機! –