国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

高階python | 堆棧列表:RPN應用(模擬逆波蘭式功能實現(xiàn))

這篇具有很好參考價值的文章主要介紹了高階python | 堆棧列表:RPN應用(模擬逆波蘭式功能實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

python版本:3.10

在列表中,append和pop方法有一個特殊的用途??梢栽诹斜砩鲜褂眠@兩個方法讓列表變成一個堆棧使用。

高階python | 堆棧列表:RPN應用(模擬逆波蘭式功能實現(xiàn))

這就是一個棧,它是先進后出,類似單門轎廂電梯一樣的設計,出入口共用

堆棧最有用的應用之一就是做逆波蘭式表達法(RPN)的解釋器。RPN使用后綴表達式,至于人類怎么將自己常用的數(shù)學式轉換為RPN表達式,可以搜本賬號先前發(fā)布的文章《odoo14 | odoo中domain的復雜寫法》中前半部分的基礎教學來學習轉換過程。

使用RPN的好處就是,可以用明確的方式將這兩個操作數(shù)和運算符放在一起而不需要使用括號,例如:

10 5 * 7 3 + /

這個表達式等價于下面的常用表達式(中綴表達式),結果為 5.0:

(10 * 5) / (7+3)

下面是一個實現(xiàn)RPN邏輯的python代碼

the_stack = []


def push(v):
    the_stack.append(v)


def pop():
    return the_stack.pop()


def main():
    s = input('enter rpn string:')
    a_list = s.split()
    for item in a_list:
        if item in '+-*/':
            op2 = pop()
            op1 = pop()
            if item == '+':
                push(op1 + op2)
            elif item == '-':
                push(op1 - op2)
            elif item == '*':
                push(op1 * op2)
            else:
                push(op1 / op2)
        else:
            push(float(item))
    print(pop())


main()

# 輸入:2 3 +
# 要有空格

>>> enter rpn string: 2 3 * 4 5 + *
54.0

只要識別到運算符就將堆棧中的倒一和倒二取出并進行運算后再將結果放回,直到運行到最后一個運算符,將堆棧中的最后兩個結果運算后將最終結果放回,執(zhí)行到最后再將堆棧中的唯一存在的結果取出輸出到終端。文章來源地址http://www.zghlxwxcb.cn/news/detail-442822.html

到了這里,關于高階python | 堆棧列表:RPN應用(模擬逆波蘭式功能實現(xiàn))的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python使用列表模擬10個評委打分,去除最高、低分后,求平均分

    1、 打分實現(xiàn) 定義一個空列表接收評委的打分? : scores = []?? 在for循環(huán)中接收打分,并對分數(shù)進行判斷: scores.append(score)#使用append函數(shù)將打分存入列表中 判斷高低分,然后使用remove函數(shù)去掉高低分 2、猜拳實現(xiàn): 3、1-100偶數(shù)累加實現(xiàn): 法一: 法二:? ?4、退出循環(huán):bre

    2024年02月11日
    瀏覽(35)
  • Python-爬蟲、自動化(selenium,動態(tài)網頁翻頁,模擬搜索,下拉列表選擇、selenium行為鏈)

    Python-爬蟲、自動化(selenium,動態(tài)網頁翻頁,模擬搜索,下拉列表選擇、selenium行為鏈)

    selenium是一個Web自動化測試工具,可以直接運行在瀏覽器上·支持所有主流的瀏覽器.可以根據(jù)我們的指令,讓瀏覽器自動加載頁面,獲取需要的數(shù)據(jù),基礎頁面截圖等。 使用pip install selenium命令下載selenium模塊。 運行下列代碼: 說明沒有下載對應瀏覽器的驅動,這里使用谷歌

    2024年02月01日
    瀏覽(28)
  • Python字典應用:學生成績列表輸出

    Python字典應用:學生成績列表輸出

    假設有一個存放學生學號和語數(shù)英三門功課成績的列表studs如下: studs= [{‘sid’:‘103’, ‘Chinese’: 90, ‘Math’:95, ‘English’:92},{‘sid’:‘101’, ‘Chinese’: 80, ‘Math’:85, ‘English’:82}, {‘sid’:‘102’, ‘Chinese’: 70, ‘Math’:75, ‘English’:72}]。編寫程序,將列表studs的數(shù)據(jù)內

    2024年02月08日
    瀏覽(19)
  • 計算機組成原理知識——CPU結構組成和功能、堆棧、RISC、

    2023.9.6 計組知識開始學習 中央處理單元 :簡稱為CPU或處理器,功能是控制計算機的操作和處理數(shù)據(jù) 控制器 :控制計算機的操作,例如讀取指令、分析指令、時序、總線的控制等 運算器 :完成數(shù)據(jù)處理功能 寄存器 :臨時存儲指令、地址、數(shù)據(jù)、計算結果等 中斷 3個:取指

    2024年02月09日
    瀏覽(30)
  • Redis從入門到精通【高階篇】之底層數(shù)據(jù)結構壓縮列表(ZipList)詳解

    Redis從入門到精通【高階篇】之底層數(shù)據(jù)結構壓縮列表(ZipList)詳解

    前面的Redis從入門到精通的基礎篇和進階篇都是在使用層面和概念層面,本章節(jié),我們了解一下redis的底層數(shù)據(jù)結構,上幾個章節(jié),我們講了SDS,字典 。本章節(jié)我們聊一下ZipList。 壓縮列表(ZipList)就是redis為了節(jié)約內存而設計開發(fā)的數(shù)據(jù)結構,并且作為列表鍵和哈希鍵的底層

    2024年02月08日
    瀏覽(25)
  • 【C++高階(三)】AVL樹深度剖析&模擬實現(xiàn)

    【C++高階(三)】AVL樹深度剖析&模擬實現(xiàn)

    ??博主CSDN主頁:杭電碼農-NEO?? ? ?專欄分類:C++從入門到精通? ? ??代碼倉庫:NEO的學習日記?? ? ??關注我??帶你學習C++ ? ???? 如果你不知道什么是二叉搜索樹 請一定先閱讀這篇文章: 二叉搜索樹深度剖析 為了解決二叉搜索樹不穩(wěn)定的問題 于是乎有人提出了AVL樹結

    2024年02月05日
    瀏覽(21)
  • Python使用Selenium模擬瀏覽器自動操作功能

    Python使用Selenium模擬瀏覽器自動操作功能

    概述 在進行網站爬取數(shù)據(jù)的時候,會發(fā)現(xiàn)很多網站都進行了反爬蟲的處理,如JS加密,Ajax加密,反Debug等方法,通過請求獲取數(shù)據(jù)和頁面展示的內容完全不同,這時候就用到Selenium技術,來模擬瀏覽器的操作,然后獲取數(shù)據(jù)。本文以一個簡單的小例子,簡述Python搭配Tkinter和

    2024年01月17日
    瀏覽(92)
  • 【數(shù)據(jù)結構】12 堆棧應用:表達式求值

    【數(shù)據(jù)結構】12 堆棧應用:表達式求值

    有一個常量表達式的中綴表達式為:5 + 6 / 2 - 3 * 4,其后綴形式表示為: 5 6 2 / + 3 4 × -。后綴表達式的特點是運算符位于兩個預算數(shù)之后。其前綴表達式為: - + 5 / 6 2 × 3 4。 后綴表達式相比于中綴表達式的求值要容易很多。 從左到右掃描該表達式: (1)遇見運算數(shù)5 6 2時不

    2024年02月20日
    瀏覽(31)
  • 4.8 x64dbg 學會掃描應用堆棧

    4.8 x64dbg 學會掃描應用堆棧

    堆棧是計算機中的兩種重要數(shù)據(jù)結構 堆(Heap)和棧(Stack)它們在計算機程序中起著關鍵作用,在內存中堆區(qū)(用于動態(tài)內存分配)和棧區(qū)(用于存儲函數(shù)調用、局部變量等臨時數(shù)據(jù)),進程在運行時會使用堆棧進行參數(shù)傳遞,這些參數(shù)包括局部變量,臨時空間以及函數(shù)切換

    2024年02月13日
    瀏覽(22)
  • Python列表操作指南:索引、切片、遍歷與綜合應用

    列表(List)是Python中最常用的數(shù)據(jù)結構之一,它可以存儲多個元素,并且支持對元素的索引和切片操作。本文將介紹列表的基本操作和常用方法。 通過方括號 [] 來創(chuàng)建一個列表,可以是空列表或包含元素的列表。例如: 列表中的元素按照插入順序存儲,并且每個元素都有一

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包