棧,佇列,模組

2021-09-24 11:56:53 字數 1531 閱讀 6391

先進後出

建立棧:使用列表模範棧 a =

出棧:pop

先進先出

import collections 匯入模組

建立隊:a = collection.deque()

出隊:popleft 從左往右依次出隊

os.listdir(path) 以列表形式當前檔案在的子目錄

os.path.jion(path,paths) 拼接絕對路徑

os.path.isdir(path) 判斷是否為目錄

在python中乙個.py檔案就是乙個模組

內建模組:無需自己定義,無需安裝,可以直接匯入使用,我們稱之為內建模組。

自定義模組:需要自己定義py檔案

第三方模組:無需定義,但是需要安裝的模組,我們稱之為第三方模組。

1.提高**的可維護性。

2.提高**的復用性。

3.可以引入其他模組。

4.避免函式名和變數名衝突。

import 模組名 一次性匯入多個模組,中間用逗號隔開(time,math,random,os,collections,functools)

引用模組中的函式及變數:

通過模組名.函式名(引數列表)

模組名.變數

import math

若模組名比較長的情況,為了方便呼叫,我們可以給模組取乙個別名

語法:import 模組名 as 別名

函式的呼叫以及變數的使用

別名.函式名(引數列表)

別名.變數

from 模組名 import 函式名,類名,變數名

使用此方式引入:

引用函式以及變數的時候語法:

函式名(引數列表)

變數名注意:

使用這種方式匯入,優點方便函式呼叫,缺點可能引起函式名的衝突【因此使用此方式匯入在給函式以及變數命名的時候要注意不要出現重名】

from 模組名 import *

函式的引用

函式名(引數列表)

變數名注意:一般情況下,不建議使用【特別容易造成函式名變數名的衝突】

每個模組【.py檔案】都有乙個內建變數_ _ name_ _,當程式在當前模組執行的時候"ifname== 『main』:" 當當前模組被其他模組引入的是它的等於該模組的模組名

一般情況下,我們會使用if name _ _ = _ _ main _ _: 來作為程式入口

為了解決模組名的衝突,python引入目錄來組織模組的方法,我們稱之為包。

每個包目錄下都會包含乙個_ _ init _ .py檔案,這個檔案必須存在,若不存在python會將其當成乙個普通目錄,而不是乙個包, _ init _ _.py檔案可以是乙個空檔案,也可以有內容。

自定義模組的時候,需要注意不能跟python自帶的模組衝入,自定義模組取名的時候,可以使用多個單詞拼接的方式來取名。

sys.ar** 可以實現從程式外部向程式內部進行傳參。

第乙個引數就是該模組的模組名。

sys.path

第三方模組安裝:

pip

棧與佇列 建立棧 佇列

陣列棧 完成stack createstack int maxelements 函式,該函式建立乙個棧,maxelements為與分配的棧空間大小 棧可用空間為array 0,maxelements 1 typedef int elemtype struct stackrecord typedef ...

佇列實現棧棧實現佇列

佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...

佇列實現棧,棧實現佇列

兩個佇列實現棧 每次進入乙個佇列,取出得時候,把所有元素進入另乙個佇列,只留下乙個元素,以此實現棧的先進後出 filo package algorithmbymyself import j a.util.linkedlist import j a.util.queue 用兩個佇列實現乙個棧 publ...