## 十、Python語言中簡單數據結構的應用(之二)
----From a high schoolstudent's view to learn Python
關鍵字:
python 列表 堆棧 數據結構 遞歸調用 函數 組合問題 后綴表達式 前綴表達式逆波蘭表達式 運算符 優先級
四、利用堆棧編程實現復雜的四則運算
本部分使用堆棧將表達式轉換為后綴表達式,并計算表達式的值,表達式為四則運算表達式。
***Postfix notation***is an unambiguous way of writing an arithmetic expres- sion withoutparentheses. It is defined so that if“(*exp*1)**op**(*exp*2)”is a normal, fully parenthesized expression whose operation is**op**, the postfix version of this is“*pexp*1*pexp*2**op**”, where*pexp*1is the postfix version of*exp*1and*pexp*2is the postfix version of*exp*2.The postfix version of a sin- gle number or variable is just thatnumber or variable. For example, the postfix version of“((5+2)?(8?3))/4”is “5 2 + 8 3 ??4 /”. Describe a nonrecursiveway of evaluating an expression in postfix notation.
這是《Data Structures andAlgorithms in Python》書中堆棧的一道練習P252.
以下關于后綴表達式的詳細說明(參考baidu)
1、概述
不包含括號,[運算符](http://baike.baidu.com/view/425996.htm)放在兩個運算對象的后面,所有的計算按運算符出現的順序,嚴格從左向右進行(不再考慮運算符的優先規則,如:(2+ 1) * 3 , 即2 1 + 3 *
2、計算
運用后綴表達式進行計算的具體做法:
建立一個棧S 。從左到右讀后綴表達式,如果讀到[操作數](http://baike.baidu.com/view/420846.htm)就將它壓入棧S中,如果讀到n元運算符(即需要參數個數為n的運算符)則取出由棧頂向下的n項按操作符運算,再將運算的結果代替原棧頂的n項,壓入棧S中。如果后綴表達式未讀完,則重復上面過程,最后輸出棧頂的數值則為結束。
3、轉換
計算機實現轉換:
將中綴表達式轉換為后綴表達式的算法思想:
·開始掃描;
·數字時,加入后綴表達式;
·運算符:
1. 若為 '(',入棧;
1. 若為')',則依次把棧中的的運算符加入后綴表達式中,直到出現'(',從棧中刪除'(' ;
1. 若為 除括號外的其他[運算符](http://baike.baidu.com/view/425996.htm),當其優先級高于棧頂運算符時,直接入棧。否則從棧頂開始,依次彈出比當前處理的[運算符優先級](http://baike.baidu.com/view/262524.htm)高和優先級相等的運算符,直到一個比它優先級低的或者遇到了一個左括號為止。
·當掃描的中綴表達式結束時,棧中的的所有運算符[出棧](http://baike.baidu.com/view/346791.htm);
4、人工實現轉換
這里給出一個中綴表達式:a+b*c-(d+e)
第一步:按照[運算符](http://baike.baidu.com/view/425996.htm)的優先級對所有的運算單位加括號:式子變成了:((a+(b*c))-(d+e))
第二步:轉換前綴與后綴表達式
- 前綴:把運算符號移動到對應的括號前面
則變成了:-( +(a *(bc))+(de))
把括號去掉:-+a*bc+de前綴式子出現
- 后綴:把運算符號移動到對應的括號后面
則變成了:((a(bc)* )+ (de)+)-
把括號去掉:abc*+de+-后綴式子出現
發現沒有,前綴式,[后綴式](http://baike.baidu.com/view/2973716.htm)是不需要用括號來進行優先級的確定的。如表達式:3+(2-5)*6/3
5、計算機轉換過程詳細說明
后綴表達式 ?? ? 棧
3_________________+
3 ________________+(
3 2_______________+(-
3 2 5 -_____________+
3 2 5 -_____________+*
3 2 5 - 6 *___________+/
3 2 5 - 6 *3__________+/
3 2 5 - 6 *3/+________
("_____"用于隔開后綴表達式與棧)
遍歷中綴表達式的每個節點,如果:
1)、 該節點為[操作數](http://baike.baidu.com/view/420846.htm):
直接拷貝進入后綴表達式
2)、 該節點是運算符,分以下幾種情況:
A、 為“(”[運算符](http://baike.baidu.com/view/425996.htm):
壓入臨時堆棧中
B、 為“)”[運算符](http://baike.baidu.com/view/425996.htm):
不斷地彈出臨時堆棧頂部[運算符](http://baike.baidu.com/view/425996.htm)直到頂部的運算符是“(”為止。并把彈出的[運算符](http://baike.baidu.com/view/425996.htm)都添加到后綴表達式中
C、 為其他運算符,有以下步驟進行:
比較該運算符與臨時棧棧頂指針的運算符的優先級,如果臨時棧棧頂指針的優先級高于該運算符的優先級,彈出并添加到后綴表達式中,反復執行前面的比較工作,直到遇到一個棧頂指針的優先級低于該運算符的優先級,停止彈出添加并把該運算符壓入棧中。
此時的比較過程如果出現棧頂的[指針](http://baike.baidu.com/view/159417.htm)為‘(’,則停止循環并把該運算符壓入棧中,注意:‘(’不要彈出來。
遍歷完中綴表達式之后,檢查臨時棧,如果還有[運算符](http://baike.baidu.com/view/425996.htm),則全部彈出,并添加到后綴表達式中。
以上描述的部分來自于網上的資料,寫的非常詳細,人工轉換的例子也有。
五、使用Python的程序實現。
要把下面的仔細看完,還是需要一些耐心的。
首先是一些預處理的函數:目的是檢查()使用是否匹配,有無不合法的字符出現在表達式中:
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tbody><tr><td valign="top" style="width: 32.1px; height: 363.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 2.2px 1.0px 1.0px; border-color: #000000 #50a299 #000000 #000000"><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0px;"><font style="font-size: 14px;">1</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">2</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">3</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">4</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">5</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">6</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">7</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">8</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">9</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">10</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">11</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">12</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">13</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">14</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">15</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">16</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">17</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">18</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">19</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">20</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">21</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">22</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">23</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">24</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">25</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">26</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">27</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">28</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">29</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">30</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">31</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">32</font></span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">33</font></span></p></td><td valign="top" style="width: 375.3px; height: 363.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 1.0px 1.0px 2.2px; border-color: #000000 #000000 #000000 #50a299"><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;"># -*- coding=utf-8 -*-</font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144); min-height: 11px;"><font style="font-size: 14px;"><br/></font></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">def is_matched(expr):</font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> """ReturnTrue if all delimiters are properlymatch;?<wbr/></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> Falseotherwise."""</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> lefty ='({['</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> righty =')}]'</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> S =[]?<wbr/></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> for c inexpr:</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> if c inlefty:?<wbr/></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> S.append(c)</wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> elif c inrighty:</wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> if len(S) ==0:?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> returnFalse</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> if righty.index(c) !=lefty.index(S.pop()):</wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> returnFalse</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> returnlen(S) == 0</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144); min-height: 11px;"><font style="font-size: 14px;"><br/></font></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">def validate (instr):</font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> """檢查輸入的表達式,將不合法的字符去掉 """</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> """對于-()以及(-())這樣形式的字符串處理很麻煩,統一轉換為(0-1)* """</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> op ='+-*/()' ?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> #合法的運算符</wbr></wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> digital ='1234567890.'</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> x1 =""</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> for i inrange(len(instr)):</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> if instr[i] in op or instr[i]in digital:</wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> x1 = x1 + instr[i]</wbr></wbr></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> x1 =x1.replace('(-', '((0-1)*')</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr> ifx1[0]=='-':</wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px"><font style="font-size: 14px;">?<wbr> ?<wbr>?<wbr> ?<wbr> x1 = x1.replace('-','(0-1)*', 1)?<wbr/></wbr></wbr></wbr></wbr></font></span></p><p style="margin: 0px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0px;"><font style="font-size: 14px;">?<wbr> ?<wbr> returnx1</wbr></wbr></font></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td></tr></tbody></table>
這個程序本身沒有太多需要解釋的,唯一需要注意的是:
line1:# -*- coding=utf-8-*-
這可不是注釋,雖然以#開頭,如果想讓.py文件中使用中文的注釋,而解釋器不報錯的話,必須在文件開頭加入這么一句。
同時,如果想print語句顯示中文字符串,必須注意些:
print u”中文顯示舉例”
在檢查了表達式字符串的合法行之后,我們就將表達式中的數與運算符分離,按照各自的類型,逐個按照表達式的順序存儲在一個List中,如’123+234’,字符串123、234會被作為兩個整型數保存。
程序如下:
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tbody><tr><td valign="top" style="width: 25.1px; height: 384.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 2.2px 1.0px 1.0px; border-color: #000000 #50a299 #000000 #000000"><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">1</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">2</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">3</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">4</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">5</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">6</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">7</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">8</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">9</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">10</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">11</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">12</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">13</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">14</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">15</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">16</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">17</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">18</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">19</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">20</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">21</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">22</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">23</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">24</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">25</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">26</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">27</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">28</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">29</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">30</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">31</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">32</span></p></td><td valign="top" style="width: 376.9px; height: 384.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 1.0px 1.0px 2.2px; border-color: #000000 #000000 #000000 #50a299"><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">def separation (x):</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> """</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> 將表達式進行拆分,拆分的結果存放到一個list中</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> 由于list中的元素可以為各種類型,這給我們提供了極大的便利</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> 將數字串轉換為int或float型,運算符按字符串存儲</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> """</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> op = '+-*/()' ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> #合法的運算符</wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> digital = '1234567890.'</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> alist = []</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ifrom = 999</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> for i in range(len(x)):</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> if x[i] inop:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if ifrom ==999:?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> alist.append(x[i])</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> else:</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> if x[i - 1] in digital:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> if '.' inx[ifrom:i]:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> alist.append( float(x[ifrom:i] ) )</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>else:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> alist.append( int( x[ifrom:i]) )</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> alist.append(x[i])</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ifrom = 999?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>else:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if ifrom==999:</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ifrom=i?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> if ifrom != 999:</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> if '.' inx[ifrom:len(x)]:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> alist.append( float(x[ifrom:len(x)] ) )</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>else:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> alist.append( int(x[ifrom:len(x)] ) )</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> return alist</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td></tr></tbody></table>
最后就是后綴表達式轉換的函數了:
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tbody><tr><td valign="top" style="width: 25.1px; height: 742.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 2.2px 1.0px 1.0px; border-color: #000000 #50a299 #000000 #000000"><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">1</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">2</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">3</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">4</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">5</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">6</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">7</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">8</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">9</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">10</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">11</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">12</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">13</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">14</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">15</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">16</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">17</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">18</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">19</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">20</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">21</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">22</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">23</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">24</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">25</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">26</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">27</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">28</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">29</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">30</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">31</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">32</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">33</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">34</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">35</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">36</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">37</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">38</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">39</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">40</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">41</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">42</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">43</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">44</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">45</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">46</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">47</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">48</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">49</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">50</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">51</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">52</span></p></td><td valign="top" style="width: 376.9px; height: 742.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 1.0px 1.0px 2.2px; border-color: #000000 #000000 #000000 #50a299"><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">defsuffix_expression_r(exprinlist):</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> alist=[]</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> blist=[]</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> for i in exprinlist:</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> if type(i)== float or type(i) == int:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr>alist.append(i)?<wbr> ?<wbr>?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> if type(i)== str:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='(':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='+' ori=='-':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> if len(blist)==0:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> else:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> whileTrue:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> x=blist.pop()</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if x=='+' or x=='-' or x=='*'or x=='/':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> alist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if x=='(':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> break</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if len(blist)==0:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> break</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='*' ori=='/':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> if len(blist)==0:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> else:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> whilelen(blist)>0:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> x=blist.pop()</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if x=='*' orx=='/':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> alist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> break</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if x=='+' orx=='-':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> break</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if x=='(':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> blist.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> break</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i==')':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> while len(blist)>0:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>x=blist.pop()</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> ifx!='(':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> alist.append(x)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr> ifx=='(':</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> break?<wbr/></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> while len(blist)>0:</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>alist.append(blist.pop())?<wbr>?<wbr/></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> return alist</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td></tr></tbody></table>
函數的輸入參數是一個使用separation()函數將字符串表達式轉換后的list
blist用來模擬存放運算符的堆棧,alist用來存放結果
最后要做的是進行計算,前面所有這些都是為了讓計算機知道,哪些是數,哪些是運算操作符,并且將運算符的優先級順序區分出來,等所有這些都做好,其實計算反而是最簡單的事情了,看函數的實現:
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tbody><tr><td valign="top" style="width: 25.1px; height: 336.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 2.2px 1.0px 1.0px; border-color: #000000 #50a299 #000000 #000000"><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">1</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">2</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">3</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">4</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">5</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">6</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">7</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">8</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">9</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">10</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">11</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">12</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">13</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">14</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">15</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">16</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">17</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">18</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">19</span></p><p style="margin: 0px; text-align: right; line-height: normal; font-family: Arial; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">20</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td><td valign="top" style="width: 377.4px; height: 336.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 1.0px 1.0px 2.2px; border-color: #000000 #000000 #000000 #50a299"><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">defcalculation(expression):</span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> list_a=[]?<wbr/></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> for i in expression:</wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> iftype(i)==float or type(i)==int:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> list_a.append(i)</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr> eliftype(i)==str:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> x=list_a.pop()</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> y=list_a.pop()</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='+':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> result=x+y</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='-':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> result=y-x</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='*':</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> result=x*y</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> if i=='/' andabs(x)>1E-9:</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> result=y/x</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr>list_a.append(result)</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>else:</wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> ?<wbr> ?<wbr>?<wbr> ?<wbr> return 'Error'</wbr></wbr></wbr></wbr></wbr></wbr></span></p><p style="margin: 0px; line-height: normal; font-family: Arial; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> return result</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td></tr></tbody></table>
函數調用方法:
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tbody><tr><td valign="top" style="width: 25.1px; height: 156.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 2.2px 1.0px 1.0px; border-color: #000000 #50a299 #000000 #000000"><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">1</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">2</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">3</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">4</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">5</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">6</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">7</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">8</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">9</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">10</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">11</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">12</span></p><p style="margin: 0px; text-align: right; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(122, 122, 122);"><span style="letter-spacing: 0.0px">13</span></p></td><td valign="top" style="width: 377.4px; height: 156.0px; background-color: #ffffff; border-style: solid; border-width: 1.0px 1.0px 1.0px 2.2px; border-color: #000000 #000000 #000000 #50a299"><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">expr ="3+(2-5)*6.0/3"</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">if notis_matched(expr):</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print u"錯誤的表達式!"</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">else:</span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> temp_x1=validate(expr)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print(temp_x1)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> expr_list = separation(temp_x1)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print expr_list</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print suffix_expression_r(expr_list)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> s_expr =suffix_expression_r(expr_list)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print s_expr</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: 'Heiti sC Light'; color: rgb(1, 24, 144);"><span style="letter-spacing: 0.0px">?<wbr>?<wbr> print expr, ' = ',calculation(s_expr)</wbr></wbr></span></p><p style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"><br/></p></td></tr></tbody></table>
顯示的運行結果如下:
3+(2-5)*6.0/3
[3, '+', '(', 2, '-', 5, ')','*', 6.0, '/', 3]
[3, 2, 5, '-', 6.0, '*', 3,'/', '+']
3+(2-5)*6.0/3?= ?-3.0
六、結束語
看著、想著都很簡單的事,為什么讓計算機做起來這么復雜呢?甚至都會覺得計算機一點也沒有我之前很智能的感覺了。但是在把這個程序做好之后,你輸入任一的四則運算表達式,不管多長,它都能瞬間的檢查你的表達式是否正確,如果正確的話它也能夠瞬間的給你答案,似乎又智能了。
所以,我們應該這么認為:計算機的計算能力是很強大的,關鍵在于我們能夠讓它做什么,這個讓計算機做什么的過程就是編程的過程。
我的更多文章:
- [Python程序調試的一些體會](http://blog.sina.com.cn/s/blog_d6cca93e0101ewc9.html)(2013-10-06 22:57:35)
- [十四、Python編程計算24點(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101euxx.html)(2013-10-03 22:18:28)
- [十三、Python編程計算24點(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101eukc.html)
(2013-10-02 22:15:46)
- [十一、Python簡單數據結構應用(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ep9z.html)(2013-09-23 23:31:49)
- [十、Python編程解決組合問題(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101entc.html)
(2013-09-21 23:37:27)
- [九、Python編程解決組合問題(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ent7.html)(2013-09-21 23:32:54)
- [八、Python的函數編程(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwj.html)
(2013-09-20 23:09:39)
- [七、Python的函數編程(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwg.html)
(2013-09-20 23:09:10)
- [六、Python的程序流程](http://blog.sina.com.cn/s/blog_d6cca93e0101ejeg.html)(2013-09-19 16:53:58)
- [高中生如何學編程](http://blog.sina.com.cn/s/blog_d6cca93e0101e8fn.html)(2013-09-02 19:26:01)