我是新來的Python,我正在努力編寫一個計算器程序。我一直在嘗試做以下事情,但沒有成功,所以請指點我正確的方向:Python - 計算器程序和字符串
我想輸入一個方程作爲用戶,例如: f(t)= 2x^5 + 8
程序應該識別字符串的不同部分,並在這種情況下創建一個變量f(t)並將它分配給2x^5 + 8。
不過,如果我輸入的方程式隨後等號,例如 2X^5 + 8 =
程序將不是隻輸出答案。
我不是問如何編寫求解方程的數學邏輯,只是如何讓程序識別字符串的不同部分並據此作出決定。
對不起,我沒有任何代碼顯示爲一個嘗試,因爲我不知道如何去做這件事,我正在尋找一些幫助開始。
謝謝。
This help:http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks-in-python?如果可以的話,嘗試發佈編碼嘗試。 – MikeiLL 2014-09-04 02:17:40
「做一個變量f(t)」是什麼意思?這是否意味着你想稍後能夠寫'f(t)'並且回到那個等式?或者寫'f(2)'並用'2'代替't'得到那個等式? (當然,等式中沒有「t」......)或者是什麼?另外,「2x^5 + 8 ='應該是」答案「是什麼?這不是一個等式。你想讓它在右邊假設'0'並解決這個問題嗎?或者有些不同? – abarnert 2014-09-04 02:26:55
無論如何,答案是你需要編寫一個解析器。如果你的語法實際上是Python的一個完美的子集,你可以使用Python的解析器,通過調用'ast.parse'然後執行生成的AST。否則,您可能希望使用像'pyparsing'這樣的解析器庫(它有一些很好的例子),或者編寫一個語法並將其提供給解析器生成器工具。 – abarnert 2014-09-04 02:28:24