python面試題彙總02

2021-09-12 07:40:41 字數 1053 閱讀 7800

1.閉包是什麼

python中往往出現函式套函式的情況,裡面的函式引用可引用外部的變數,則這個函式就構成閉包。

2.python中可變變數有哪些,不可變變數有哪些?

可變變數有:list,set,dict

不可變變數有:int,float,boolean,tuple,str

不可變物件,該物件所指向的記憶體中的值不能被改變。當改變某個變數時候,由於其所指的值不能被改變,相當於把原來的值複製乙份後再改變,這會開闢乙個新的位址,變數再指向這個新的位址。

可變物件,該物件所指向的記憶體中的值可以被改變。變數(準確的說是引用)改變後,實際上是其所指的值直接發生改變,並沒有發生複製行為,也沒有開闢新的出位址,通俗點說就是原地改變

3.django的專案是如何啟動的

4.tuple的長度為1時有什麼要注意的

tup = (1,);     # 建立了乙個只有乙個元素1的tuple,因為tup=(1)相當於tup=1

5.list的實現方式

list是用下邊的c語言的結構來表示的。ob_item是用來儲存元素的指標陣列,allocated是ob_item預先分配的記憶體總容量

typedef struct  pylistobject;
以上的元素裡面儲存的內容是list內元素的位址

tuple的實現方式與list類似但是tuple固定長度,不需要動態分配記憶體

6.list的方法

extend使用乙個序列擴充套件另乙個list,引數是序列。序列中的元素將逐項新增到列表的尾部,a=,a.extend((1,2,3)),那麼a=[1,2,3]

7.什麼是棧溢位,什麼是記憶體溢位

在python中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。

8.兩個佇列如何實現乙個棧?

面試題彙總

1.佇列先進先出,棧先進後出。2.對插入和刪除操作的 限定 棧是限定只能在表的一端進行插入和刪除操作的線性表。佇列是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表。從 資料結構 的角度看,它們都是線性結構,即資料元素之間的關係相同。3.遍歷資料速度不同。順序表是在記憶體中開闢一段連續的空間...

面試題彙總

1 integer和int的區別?2 和equals的區別?int a 50,integer b 50 a b?integer c 50,b c?3 get和post的區別?4 用執行緒池建立執行緒和自己建立執行緒的區別,好處是什麼?5 利用int型陣列實現乙個棧,並實現出棧和入棧操作?要求時間複雜...

面試題彙總

題目都是我自己寫的,所以也不一定是完全正確的,因為能有很多細節沒有考慮,如果大家發現了希望指正 1 完美世界2017 刪除vector中所有偶數 最想去的地方呀。void deleteeven vector v2 else if iter 2 0 else 2 編寫類string的建構函式,析構函式...