卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python深拷貝和淺拷貝的使用場(chǎng)景 如何面試Python后端工程師?

如何面試Python后端工程師?1.基于應(yīng)屆畢業(yè)生總的來(lái)說(shuō),本案例的面試考察的是Python的基本算法和解決項(xiàng)目問(wèn)題的思路,自己的學(xué)習(xí)能力,Python的基本內(nèi)容和標(biāo)準(zhǔn)庫(kù)。更傾向于基礎(chǔ)知識(shí)。2.根據(jù)一

如何面試Python后端工程師?

1.基于應(yīng)屆畢業(yè)生

總的來(lái)說(shuō),本案例的面試考察的是Python的基本算法和解決項(xiàng)目問(wèn)題的思路,自己的學(xué)習(xí)能力,Python的基本內(nèi)容和標(biāo)準(zhǔn)庫(kù)。

更傾向于基礎(chǔ)知識(shí)。

2.根據(jù)一點(diǎn)經(jīng)驗(yàn)

有實(shí)際項(xiàng)目經(jīng)驗(yàn)的調(diào)查,對(duì)于一些項(xiàng)目經(jīng)驗(yàn)的細(xì)節(jié)深入調(diào)查,技術(shù)主要是數(shù)據(jù)庫(kù)、緩存等后端相關(guān)生態(tài)知識(shí),python的一些高層內(nèi)容以及第三方庫(kù)的應(yīng)用。

百度上有很多題庫(kù),你可以根據(jù)自己的情況選擇。

當(dāng)然,不管面試是什么。打好基礎(chǔ),實(shí)戰(zhàn)有項(xiàng)目就差不多了。還是看自己的能力吧!

為什么Python工程師很少像Java工程師那樣討論垃圾回收?

如何管理白記憶中的杜?

Python中主要有三種內(nèi)存管理機(jī)制:引用計(jì)數(shù)zhi機(jī)制、垃圾收集dao機(jī)制和內(nèi)存池機(jī)制。

A.引用計(jì)數(shù)

當(dāng)一個(gè)對(duì)象被賦予一個(gè)新的名字或被放入一個(gè)容器(列表、元組或字典)時(shí),該對(duì)象的引用計(jì)數(shù)將增加。

當(dāng)del用于表示一個(gè)對(duì)象被銷(xiāo)毀或者引用超過(guò)動(dòng)作或者被重新分配時(shí),該對(duì)象的引用計(jì)數(shù)將會(huì)減少。

您可以使用()函數(shù)來(lái)獲取對(duì)象的當(dāng)前引用計(jì)數(shù)。在大多數(shù)情況下,引用計(jì)數(shù)比我們猜測(cè)的要大得多。對(duì)于不可變的數(shù)據(jù)(數(shù)字和字符串),解釋器會(huì)在程序的不同部分共享內(nèi)存以節(jié)省內(nèi)存。

B.碎片帳集

當(dāng)對(duì)象的引用計(jì)數(shù)歸零時(shí),它將被垃圾收集機(jī)制處理掉。

當(dāng)...的時(shí)候

當(dāng)兩個(gè)對(duì)象A和B相互引用時(shí),del語(yǔ)句可以減少A和B的引用計(jì)數(shù),并銷(xiāo)毀用于引用底層對(duì)象的名稱(chēng)。但是,由于每個(gè)對(duì)象都包含對(duì)其他對(duì)象的應(yīng)用程序,因此引用

計(jì)數(shù)不會(huì)歸零,對(duì)象也不會(huì)被銷(xiāo)毀。(導(dǎo)致內(nèi)存泄漏)。為了解決這個(gè)問(wèn)題,解釋器將定期執(zhí)行循環(huán)檢測(cè)器來(lái)搜索不可訪(fǎng)問(wèn)對(duì)象的循環(huán)并刪除它們。

C.內(nèi)存池機(jī)制

Python為內(nèi)存提供了垃圾收集機(jī)制,但是它將未使用的內(nèi)存放入內(nèi)存池,而不是返回給操作系統(tǒng)。

1)Pymalloc機(jī)制。為了加快Python的執(zhí)行效率,Python引入了內(nèi)存池機(jī)制來(lái)管理小塊內(nèi)存的申請(qǐng)和釋放。

2)Python中所有小于256字節(jié)的對(duì)象都使用pymalloc實(shí)現(xiàn)的分配器,而大型對(duì)象使用系統(tǒng)的malloc。

3) Python對(duì)象,比如整數(shù)、浮點(diǎn)數(shù)、List,都有自己的私有內(nèi)存池,對(duì)象不共享自己的內(nèi)存池。也就是說(shuō),如果你分配釋放了大量的整數(shù),那么用來(lái)緩存這些整數(shù)的內(nèi)存就不能再分配給浮點(diǎn)數(shù)了。

【Python環(huán)境】12個(gè)Python面試問(wèn)題匯總

2.什么是洛杉磯?Mbda函數(shù)?它有什么好處?

Lambda表達(dá)式通常在你需要一個(gè)函數(shù)的時(shí)候使用,但是你不需要。;t不想費(fèi)事給它起名字,就是匿名函數(shù)。

Lambda函數(shù):主要目的是指出短回調(diào)函數(shù)。

lambda[參數(shù)]:表達(dá)式

gtgtgt alambda x,y:x y

gtgtgt a(3,11)

3.如何在Python中實(shí)現(xiàn)元組和列表的轉(zhuǎn)換?

直接用tuple和list函數(shù)就行了,type()可以確定對(duì)象的類(lèi)型。

4.請(qǐng)編寫(xiě)Python代碼來(lái)刪除列表中的重復(fù)元素。

這個(gè)地方可以用set來(lái)實(shí)現(xiàn)。

5.如何在Python中復(fù)制一個(gè)對(duì)象?(賦值、淺拷貝和深拷貝的區(qū)別)

賦值()是創(chuàng)建一個(gè)對(duì)象的新引用,修改任何一個(gè)變量都會(huì)影響到另一個(gè)。

淺拷貝:創(chuàng)建一個(gè)新的對(duì)象,但是它包含了對(duì)原對(duì)象所包含的項(xiàng)的引用(如果引用修改了一個(gè)對(duì)象,那么另一個(gè)對(duì)象也會(huì)被修改改變){1、全切片法;2、工廠(chǎng)函數(shù),比如list();3、復(fù)制模塊的copy()函數(shù)}

深層復(fù)制:新建一個(gè)對(duì)象,遞歸復(fù)制它包含的對(duì)象(修改一個(gè),另一個(gè)不變){()復(fù)制模塊的函數(shù)}

6.介紹except的用法和作用?

嘗試…除了…除了…[其他…][最后…]

執(zhí)行try下的語(yǔ)句,如果拋出異常,執(zhí)行會(huì)跳轉(zhuǎn)到except語(yǔ)句。嘗試按順序執(zhí)行except中的每個(gè)分支,如果拋出的異常與except中的異常組匹配,則執(zhí)行相應(yīng)的語(yǔ)句。如果所有異常都不匹配,異常將被傳遞給調(diào)用此代碼的下一個(gè)最高級(jí)別的try代碼。

如果try下的語(yǔ)句正常執(zhí)行,則執(zhí)行else塊代碼。如果出現(xiàn)異常,將不會(huì)執(zhí)行。

如果finally語(yǔ)句存在,它最終將總是被執(zhí)行。

【Python環(huán)境】12個(gè)Python面試問(wèn)題匯總

7.什么?;Python中match()和search()的區(qū)別是什么?

re模塊中的Match(pattern,string [,flags]),并檢查字符串的開(kāi)頭是否與模式匹配。

在re模塊中,research(pattern,string [,flags])在string中搜索模式的第一個(gè)匹配值。

gtgtgt print((;超級(jí);,;迷信;)。span())

(0, 5)

gtgtgt打印((;超級(jí);,;不可逾越;))

沒(méi)有人

gtgtgt print((;超級(jí);,;迷信;)。span())

(0, 5)

gtgtgt print((;超級(jí);,;無(wú)法超越;)。span())

(2, 7)

8.用Python匹配HTML標(biāo)簽時(shí),lt.*gt和lt.*?什么?;gt的區(qū)別是什么?

這些術(shù)語(yǔ)稱(chēng)為貪婪匹配(lt.*gt)和非貪婪匹配(lt.*?gt)

例如:

試驗(yàn)

lt.*gt:

試驗(yàn)

lt.*?gt:

9.以下代碼的輸出會(huì)是什么?說(shuō)出你的答案并解釋。

輸出:

讓你不解或驚訝的是,最后一行的輸出是3 ^ 2 ^ 3而不是3 ^ 2 ^ 1。為什么改變Parent.x的值會(huì)改變Child2.x的值,但同時(shí)Child1.x的值不變?

這個(gè)答案的關(guān)鍵是在Python中

類(lèi)變量在內(nèi)部被視為字典。如果在當(dāng)前類(lèi)的字典中沒(méi)有找到變量名,將搜索祖先類(lèi)(如父類(lèi)),直到找到被引用的變量名(如果被引用的變量名

變量名在其自己的類(lèi)或其祖先類(lèi)中找不到,這將引發(fā)AttributeError異常)。

因此,在父類(lèi)中設(shè)置x 1將使對(duì)該類(lèi)及其任何子類(lèi)的引用中的類(lèi)變量x 1的值。這是因?yàn)榈谝粋€(gè)print語(yǔ)句的輸出是1 1 1。

隨后,如果它的任何子類(lèi)重寫(xiě)了該值(例如,我們執(zhí)行語(yǔ)句Child1.x 2),那么該值只在子類(lèi)中發(fā)生變化。這就是為什么第二個(gè)print語(yǔ)句的輸出是1 2 1。

最后,如果父類(lèi)中的值發(fā)生變化(例如,我們執(zhí)行語(yǔ)句Parent.x 3),這種變化將影響任何沒(méi)有覆蓋該值的子類(lèi)中的值(在本例中,受影響的子類(lèi)是Child2)。這就是為什么第三次打印輸出是3 2 3。

10.下面的代碼會(huì)輸出什么?

回答

上述代碼將輸出[],并且不會(huì)導(dǎo)致IndexError。

不出所料,試圖訪(fǎng)問(wèn)超過(guò)列表索引值的成員會(huì)導(dǎo)致IndexError(比如訪(fǎng)問(wèn)上面列表的list[10])。但是,試圖訪(fǎng)問(wèn)起始索引超過(guò)列表成員數(shù)的列表片段不會(huì)導(dǎo)致IndexError,只會(huì)返回空列表。

【Python環(huán)境】12個(gè)Python面試問(wèn)題總結(jié)

一個(gè)惱人的小問(wèn)題是,它會(huì)導(dǎo)致錯(cuò)誤,而且這個(gè)問(wèn)題很難跟蹤,因?yàn)樗粫?huì)在運(yùn)行時(shí)導(dǎo)致錯(cuò)誤。

11.以下代碼的輸出會(huì)是什么?說(shuō)出你的答案并解釋?zhuān)?/p>

如何修改extendList的定義來(lái)產(chǎn)生期望的結(jié)果?

上述代碼的輸出是:

很多人誤以為list1應(yīng)該等于[10],list3應(yīng)該等于[a]。相信每次調(diào)用extendList時(shí),list的參數(shù)將被設(shè)置為其默認(rèn)值[]。

然而,實(shí)際發(fā)生的情況是,新的默認(rèn)列表只在定義函數(shù)時(shí)創(chuàng)建一次。然后,當(dāng)指定的List參數(shù)沒(méi)有調(diào)用extendList時(shí),它使用同一個(gè)列表。這就是為什么在定義函數(shù)時(shí),表達(dá)式是用默認(rèn)參數(shù)計(jì)算的,而不是在調(diào)用它時(shí)。

因此,list1和list3是相同的操作列表。而` ` ` `` list2是由操作創(chuàng)建的獨(dú)立列表(通過(guò)傳遞它自己的空列表作為list ` ```` `參數(shù)的值)。

extendList函數(shù)的定義可以修改如下,但是當(dāng)沒(méi)有指定新的List參數(shù)時(shí),總是會(huì)開(kāi)始一個(gè)新的list,這更可能是預(yù)期的行為。

12.下面的程序輸出什么?

好的

好了,第一行代碼是我第一次看到。第一行輸出[[],[],[],[],一個(gè)包含五個(gè)空列表的列表,而第二行輸出[[10]。

[10], [10], [10],

[10]],我只能解釋這五個(gè)列表指向同一個(gè)列表,所以修改其他四個(gè)中的任何一個(gè)都會(huì)改變。您可以嘗試斷開(kāi)與列表[0]10的連接。