python面試真題整理 (一)

2021-09-26 10:09:09 字數 3273 閱讀 9549

day2

day3

day4

day5

day1

python中is和==的區別

在python中,乙個物件有三個要素,value,id和type。

「==」主要判斷的是兩個物件的value是否相同,

「is」也叫同一性運算子,會判斷兩者的id是否相同。

簡述read、readline和readlines的區別

read:將檔案內內容全部讀取輸出;

readline:讀取檔案內容的一行;

readlines:讀取檔案的所有內容,按行返回乙個列表。

舉例說明建立字典的至少兩種方法

直接採用dict=建立

內建方法fromkeys。dict = {}.fromkeys((key1,key2),value),這樣建立出來的字典適合字典中的key有相同的value值,預設為none。

zip間接建立userinfo = zip.([「username」,「id」],[「lalala」,「123」]),dict(userinfo),即可建立字典。

*args,**kwargs的作用?如何使用?

當函式的引數不確定時,可以使用args 和kwargs,args 沒有key值,kwargs有key值。

當我們不知道向函式傳遞多少引數時,比如我們向傳遞乙個列表或元組,我們就使用*args

當我們不知道該傳遞多少關鍵字引數時,使用**kwargs來收集關鍵字引數

python中match()和search()的區別?

match()函式只檢測字串開頭位置與所檢測的string是否匹配,匹配成功才會返回結果,否則返回none;

search()函式會在整個字串內查詢模式匹配,只到找到第乙個匹配然後返回乙個包含匹配資訊的物件,該物件可以通過呼叫group()方法得到匹配的字串,如果字串沒有匹配,則返回none。

day2

解釋一下python中的三元表示式

if_suite if expression1 else else_suite

expression1 :判斷條件

if_suite:true的值

else_suite:false的值

python中如何實現多執行緒?

建立thread的例項,傳遞給它乙個函式

建立thread的例項,傳遞給它乙個可呼叫的類例項

派生thread的子類,並建立子類的例項

使用執行緒池

解釋繼承

繼承描述的是事物之間的所屬關係,當我們定義乙個class的時候,可以從某個現有的class繼承,父類的屬性、方法,會被繼承給子類。

什麼是flask?

flask 是 python 編寫的一款輕量級 web 應用框架。其 wsgi 工具箱採用 werkzeug ,模板引擎則使用 jinja2。flask 使用 bsd 授權。其中兩個環境依賴是 werkzeug 和 jinja2,這意味著它不需要依賴外部庫。正因如此,我們將其稱為輕量級框架。

如何在python中管理記憶體?

python採用的是引用計數機制來管理分配的記憶體。python 的每個物件都有乙個引用計數,這個引用計數表明了有多少物件在指向它。當這個引用計數為 0 時,釋放該物件的記憶體。為了解決迴圈引用的問題,python提供了「標記-清除」法,用於釋放迴圈引用的物件。

day3

python2和python3的range(100)的區別。

在python2中,range(100)返回的是乙個列表,

在python3中,range(100)返回的是乙個可迭代物件。

一句話解釋什麼樣的語言能夠用裝飾器。

函式可以作為引數傳遞的語言可以使用裝飾器

python內建資料型別有哪些?

python內建資料型別有整形(int)、浮點型(float)、複數(complex)、布林(bool)、字串(str)、列表(list)、元組(tuple)、集合(set)、字典(dict)、

簡述物件導向中__new__和__init__的區別?

__new__是在建立物件之前進行的動作,所接受的引數是cls,負責物件的建立;

__init__是在物件建立之後的動作,完善物件的屬性,所接受的引數是self。

物件的生成是在new中完成的。

簡述with方法開啟處理檔案幫我們做了什麼?

with方法開啟檔案,可以在我們對檔案操作完成後,自動關閉檔案,保證檔案的安全性。

day4

大資料的檔案讀取

① 利用生成器generator;

②迭代器進行迭代遍歷:for line in file

迭代器和生成器的區別

可迭代物件:可以直接作用於for迴圈的物件;

迭代器就是用於迭代操作的物件,迭代器都是可迭代物件。簡單來說,迭代器就是可以被next()函式呼叫並不斷返回下乙個值的物件;

生成器的本質也是乙個迭代器,與迭代器的區別在與yield,生成器在返回資料是需要使用yield。

裝飾器的作用和功能

裝飾器的本質就是乙個函式,只不過裝飾器的引數不像普通函式那樣,裝飾器的引數是乙個函式,它的作用就是它可以讓其他函式在不需要修改**的前提下增加額外的功能,裝飾器的返回值也是乙個函式物件。在開發中,我們需要遵循開放封閉原則,對於已經實現的功能,我們便不再對其進行修改,這時就需要裝飾器來對其進行擴充套件。

簡單談下gil

gil(global interperter lock)即全域性直譯器鎖,gil是python解釋層面的鎖,解決直譯器中多個執行緒的競爭資源問題(多個子執行緒在系統資源競爭時,都在等待物件某個部分資源解除占用狀態,結果誰也不願意先解鎖,然後互相等著,程式無法執行下去)。

如何提高python的執行效率

優化迴圈

多使用pthon中已經封裝好的模組

使用較新的python版本

day5

列表和元組有什麼不同?

首先,列表和元組都是可以儲存任意資料型別的集合,

但元組是不可變的。

解釋python中的help()函式和dir()函式。

help函式是乙個內建函式,用於檢視函式或模組用途的詳細說明。

dir()函式時python的內建函式,dir()函式不帶引數時,返回當前範圍內的變數、方法和定義的型別列表,帶引數時,返回引數的屬性、方法列表

當退出python時是否會釋放所有記憶體分配?

答案是否定的。那些具有物件迴圈引用或者全域性命名空間引用的變數,在 python 退出是往往不會被釋放。

什麼是猴子補丁?

屬性在執行時的動態替換,叫做猴子補丁。

解釋一下*args和**kwargs。

見day1*args,**kwargs的作用?如何使用?

面試真題 一

開始彙總面試碰到的 題,為保密起見,不透露公司名字,但會把所有的程式設計題都記錄下來,每一篇代表一家公司,我會盡量整理得快一點。60分鐘,10道單選 5道不定項選擇 若干道填空 2道改錯 1道程式設計。1 給定乙個鍊錶,返回鍊錶逆置後的結果。思路 簡單的鍊錶逆置題,我一開始以為是逆序輸出鍊錶的值,想...

面試真題之旅(一)

include include include void getmemory char p int main c語言引數傳遞 c語言函式的引數傳遞採用按值傳遞。對於此題來講,在main函式中宣告了乙個char 型別的變數str,假設其變數位址為a,變數的值為ptr a。將str傳入函式getmemo...

python面試演算法真題系列一

tips 答案在所有問題的後邊 簡單的字串排序 將字串按ascii的順序進行排序 注意,用例的輸入是input 輸入描述 cba 輸出描述 abc 示例1 輸入 cba 輸出abc 示例2 輸入 031fc 輸出 013cf 題2 字元對映 1 有乙個字元生成裝置,有按鈕1 9,其中每個數字對應多個...