2017-10-12 23 views
0

我正在開發一個pyhton項目,我必須實現一個syntaxic分析器的複數,我需要爲算術運算做一個計算器。我想知道如何開始,你能幫我嗎?在python下實現一個句法分析器

+0

看看層我猜 –

+0

您可能會發現這有用:https://dbader.org/blog/writing-a-dsl-with-python?utm_content=buffer274c4&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer –

回答

1

如果您一次只能接受一個操作數,您可能會很少離開。正如你可能知道的那樣,Python接受1+2j作爲一個複數,5.36j作爲一個虛數。因此,如果您要求用戶以傳統方式輸入數字(即10.2 + i6.57),大多數解析器對解析單個複數都是過度的。只需做一些小的字符串處理即可提取實部和虛部並使用complex函數。

我建議:

  • Tk的GUI
  • pyparsing,如果你真的想要一個分析器,但它可能是不必要的
  • Python本身做算術

有可能交換用戶:

>>> x = 2+8j 
>>> y = 3-7j 
>>> x/y 
(-0.8620689655172415+0.6551724137931035j) 
>>> x*y 
(62+10j) 
+0

謝謝,但你能幫我多一點嗎?我不知道從哪裏開始以及實現複雜數字解析器需要什麼步驟.. –

+0

Nada,當您說複雜數字的解析器時,您的意思只是個別數字的解析器,或者涉及複雜表達式的解析器例如說'a + ib'的數字? –

+0

是的我的意思是解析器的表達式涉及複數或者可能被稱爲解析器的算術運算,我只想知道如何開始和遵循的步驟。 –