欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > python利用后綴表達式實現計算器功能

python利用后綴表達式實現計算器功能

熱門標簽:舉辦過冬奧會的城市地圖標注 地圖地圖標注有嘆號 螳螂科技外呼系統怎么用 400電話申請資格 遼寧智能外呼系統需要多少錢 qt百度地圖標注 正安縣地圖標注app 電銷機器人系統廠家鄭州 阿里電話機器人對話

本文實例為大家分享了python實現計算器功能的具體代碼,供大家參考,具體內容如下

前綴表達式

運算符在數字的前面

1 + (2 + 3) * 4 - 5 (中綴)
- + 1 * + 2 3 4 5  (前綴)

前綴表達式的計算方法和后綴表達式類似,只是變成了從右往左掃描

中綴表達式

運算符在中間,運算時需要考慮運算符優先級

1+2*3-5
要先算2*3....

后綴表達式

運算符在數字的后面,運算時不考慮優先級,只需要遇到符號,就把他前面的兩個數字進行運算就好了

例如: a b c + + 即: a + (b + c)

1 + (2 + 3) * 4 - 5 (中綴)
1 2 3 + 4 * + 5 -  (后綴)

因為無需考慮優先級,運算是線性結構的,其用棧實現會很簡單

中綴表達式 轉換為 后綴表達式

運算規律,運算數位置不變,改變的是符號的位置

2 + 9 / 3 - 5   (中綴)
2 9 3 / + 5 -  (后綴)

具體方式

1.從左到右進行遍歷
2.運算數,直接輸出.
3.左括號,直接壓入堆棧,(括號是最高優先級,無需比較)(入棧后優先級降到最低,確保其他符號正常入棧)
4.右括號,(意味著括號已結束)不斷彈出棧頂運算符并輸出直到遇到左括號(彈出但不輸出)
5.運算符,將該運算符與棧頂運算符進行比較,
如果優先級高于棧頂運算符則壓入堆棧(該部分運算還不能進行),
如果優先級低于等于棧頂運算符則將棧頂運算符彈出并輸出,然后比較新的棧頂運算符.
(低于彈出意味著前面部分可以運算,先輸出的一定是高優先級運算符,等于彈出是因為同等優先級,從左到右運算)
直到優先級大于棧頂運算符或者棧空,再將該運算符入棧.
**6.*如果對象*處理完畢,則按順序彈出并輸出棧中所有運算符.

后綴表達式運算步驟

后綴表達式運算步驟:

(以堆棧儲存)
從左到右,遇到運算符就彈出相應的運算數,運算后再把結果入棧.最終結果就是棧頂數的值.
(由于該運算為線性結構,具體運算時是不需要儲存輸出后的運算符,一般是輸出一個運算符就進行一次運算,不像圖中要儲存輸出狀態.)

注意點:

有時候'-'(負號)是單目運算符,則要修改運算數.
遇到其他運算符(如冪運算)也類似.

python代碼例子

'''
中綴轉換為后綴
'''

a = "1+(2+6/1+2)"
#a = "2+9/3-5"
# 可能出現的符號 
symbol_1 = ['+','-','*','/']
symbol_2 = ['(']
symbol_3 = [')']
# 符號的優先級
priority = {'#':-1,'(':1,'+':2,'-':2,'*':3,'/':3}
match_2 = {')':'('}
# 存儲符號的棧
zhan = []
zhan.append("#")
# 結果
result = []

'''
### 這里只是對表達式進行轉換
for i in a:
 # 如果是數字直接添加到結果
 if i.isdigit():
 result.append(i)
 # 如果是 + - * / 運算,則先出棧更低優先級的,然后入棧
 elif i in symbol_1:
 # 如果優先級低,則出棧所有優先級>=的符號
 while priority[i] = priority[zhan[-1]]:
 result.append(zhan.pop())
 # 壓入符號
 zhan.append(i)
 # 如果是左括號,直接壓入
 elif i in symbol_2:
 zhan.append(i)
 # 如果是右括號,則出棧,直到遇到了匹配的左括號,然后吧左括號也出棧
 elif i in symbol_3:
 while zhan[-1] != match_2[i]:
 result.append(zhan.pop())
 zhan.pop()
 
result.append(zhan.pop())
print(''.join(result))

'''
# 下面通過將中綴表達式轉換為后綴表達式,并進行運算
def my_operation(symbol, a, b):
 a,b = int(a),int(b)
 if symbol == '+':
 return a + b
 elif symbol == '-':
 return a - b
 elif symbol == '*':
 return a * b
 elif symbol == '/':
 return a / b

def to_operation(result, zhan):
 two = result.pop()
 one = result.pop()
 symbol = zhan.pop()
 ret = my_operation(symbol, one, two)
 print(f"{one}{symbol}{two} = {ret}")
 result.append(ret)

### 在表達式轉換的時候就一邊進行了運算
for i in a:
 # 如果是數字直接添加到結果
 if i.isdigit():
 result.append(i)
 # 如果是 + - * / 運算,則先出棧更低優先級的,然后入棧
 elif i in symbol_1:
 # 如果優先級低,則出棧所有優先級>=的符號
 while priority[i] = priority[zhan[-1]]:
 to_operation(result, zhan)
 # 壓入符號
 zhan.append(i)
 # 如果是左括號,直接壓入
 elif i in symbol_2:
 zhan.append(i)
 # 如果是右括號,則出棧,直到遇到了匹配的左括號,然后吧左括號也出棧
 elif i in symbol_3:
 while zhan[-1] != match_2[i]:
 to_operation(result, zhan)
 zhan.pop()
 
to_operation(result, zhan)
print(result)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 用python實現一個簡單計算器(完整DEMO)
  • python 實現一個圖形界面的匯率計算器
  • python 實現簡單的計算器(gui界面)
  • python實現計算器簡易版
  • python 基于 tkinter 做個學生版的計算器

標簽:信陽 昭通 阜新 隨州 淘寶好評回訪 濟源 興安盟 合肥

巨人網絡通訊聲明:本文標題《python利用后綴表達式實現計算器功能》,本文關鍵詞  python,利用,后綴,表達式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python利用后綴表達式實現計算器功能》相關的同類信息!
  • 本頁收集關于python利用后綴表達式實現計算器功能的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日韩电影一区二区三区四区| 91麻豆精东视频| 中文字幕第20页| 日韩一区二区三区四区五区六区| 一区二区免费在线| 9人人澡人人爽人人精品| 欧美做爰爽爽爽爽爽爽| 国产精品免费丝袜| 国产成人aaa| 男人的午夜天堂| 国产欧美日韩不卡免费| 国产精品66部| 国产福利视频网站| 国产精品久久777777| 波多野结衣在线一区| 91精品福利在线| 一区二区三区日韩欧美精品| 欧美69精品久久久久久不卡| 欧美视频一区二区| 亚洲一区二区av在线| 人妻互换一二三区激情视频| 欧美妇女性影城| 日韩av不卡一区二区| 女~淫辱の触手3d动漫| 久久久久久久综合色一本| 国产乱国产乱300精品| 日韩欧美国产成人精品免费| 亚洲色图另类专区| 国产精品日日摸夜夜爽| 91精品在线观看入口| 麻豆精品视频在线观看免费 | 婷婷久久综合网| 亚洲欧洲日韩在线| 性一交一黄一片| 欧美成人性战久久| 国产成人免费在线观看| 91精品办公室少妇高潮对白| 亚洲福利视频导航| 久久av无码精品人妻系列试探| 国产亚洲综合性久久久影院| 成人av电影在线观看| 欧美日韩专区在线| 另类欧美日韩国产在线| 成人无码精品1区2区3区免费看 | 欧美私人免费视频| 天天影视色香欲综合网老头| 国产毛片欧美毛片久久久| 国产精品欧美久久久久一区二区| 91麻豆精品秘密| 精品久久久久香蕉网| 丁香另类激情小说| 欧美人牲a欧美精品| 捆绑紧缚一区二区三区视频| 无码黑人精品一区二区| 亚洲福利国产精品| 成人性视频免费看| 亚洲最色的网站| a级片在线观看| 亚洲免费观看在线视频| 中日韩精品一区二区三区| 国产精品久久久久永久免费观看| 国产免费a级片| 国产午夜精品福利| 人妻 丝袜美腿 中文字幕| 久久免费电影网| 日本黄色大片在线观看| 久久色在线视频| 一起草最新网址| 久久免费电影网| 成人一区二区三区仙踪林| 国产偷国产偷精品高清尤物| 精产国品一区二区三区| 久久久久99精品国产片| 日韩精品视频一区二区| 国产精品久久久久久户外露出| 熟妇高潮一区二区| 国产精品每日更新在线播放网址| 极品白嫩的小少妇| 国产精品免费免费| 麻豆精品免费视频| 一区二区高清在线| 萌白酱视频在线| 日本vs亚洲vs韩国一区三区二区| 亚洲欧美一区二区三区四区五区| 日本大胆欧美人术艺术动态| 在线一区二区视频| 国产成人综合在线播放| 日韩免费电影一区| 极品白嫩的小少妇| 亚洲日本乱码在线观看| 精品一区二区6| 日本人妖一区二区| 欧美日韩一区 二区 三区 久久精品| 国产精品88av| 26uuuu精品一区二区| 制服丝袜第一页在线观看| 亚洲视频网在线直播| 夫妇露脸对白88av| 日产欧产美韩系列久久99| 在线一区二区三区做爰视频网站| 国产很黄免费观看久久| 精品国产污网站| 亚洲资源在线观看| 暗呦丨小u女国产精品| 极品尤物av久久免费看| 日韩欧美综合一区| 一级黄色免费视频| 综合电影一区二区三区| 美女三级黄色片| 国产一区在线看| 精品国产伦一区二区三区观看体验| 男女一区二区三区| 亚洲大尺度视频在线观看| 欧美在线影院一区二区| 成人免费黄色大片| 中文字幕第一区| 99成人在线观看| 国产一区二区按摩在线观看| 精品国产亚洲在线| 久操视频免费看| 日本不卡视频在线观看| 日韩一区二区在线观看| 99re久久精品国产| 日韩中文字幕亚洲一区二区va在线| 欧美色图12p| 亚洲天堂小视频| 一二三区精品视频| 欧美日韩免费视频| 亚洲国产日韩在线一区| 亚洲精品乱码久久久久久久久| 99久久99久久精品国产| 国产91精品免费| 国产精品免费观看视频| 9999热视频| 97精品超碰一区二区三区| 国产精品久久久久毛片软件| 精品国产大片大片大片| 国产精品伊人色| 国产精品欧美一区二区三区| 紧身裙女教师波多野结衣| 成人午夜精品在线| 综合色中文字幕| 深夜福利影院在线观看| 91在线小视频| 亚洲mv在线观看| 91精品国产91久久综合桃花| 亚洲一区二区观看| 国产一区二区三区不卡在线观看| 久久综合狠狠综合久久综合88| 能直接看的av| 成人免费毛片片v| 亚洲精品久久嫩草网站秘色| 欧美人妖巨大在线| 国产ts在线播放| 国产成人精品三级麻豆| 亚洲精品视频在线| 91麻豆精品91久久久久同性| 亚洲a v网站| 国产成人精品www牛牛影视| 亚洲伦理在线免费看| 欧美老人xxxx18| 91麻豆精品国产91久久综合| 成人免费黄色在线| 亚洲国产精品视频| 日韩欧美中文一区| 亚洲人与黑人屁股眼交| 一区二区三区人妻| 久久99久久99小草精品免视看| 中文av一区二区| 欧美日韩一区二区三区免费看| 特大黑人巨人吊xxxx| 国产精品亚洲一区二区三区在线| 亚洲免费电影在线| 欧美mv日韩mv亚洲| 1024手机在线视频| 一起草在线视频| 成人综合激情网| 婷婷激情综合网| 国产欧美日本一区视频| 欧美性xxxxxxxx| 久久久久亚洲AV成人无在| 91在线云播放| 久久av老司机精品网站导航| 亚洲欧洲综合另类在线| 欧美一区二区免费视频| 国产美女福利视频| 亚洲精品视频大全| 9i看片成人免费高清| 免费久久99精品国产| 亚洲蜜臀av乱码久久精品蜜桃| 日韩女同互慰一区二区| 色综合久久99| 精品成人无码一区二区三区| 亚洲三级在线视频| 国产乱理伦片在线观看夜一区| 亚洲国产日产av| 中文字幕一区av| xnxx国产精品| 欧美久久久久久久久| 麻豆明星ai换脸视频|