最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

12個Python程序員面試必備問題與答案(小結(jié))

 更新時間:2019年06月24日 10:27:43   作者:阿怡大大  
這篇文章主要介紹了12個Python程序員面試必備問題與答案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1. 什么是pickling和unpickling?

Pickle模塊讀入任何Python對象,將它們轉(zhuǎn)換成字符串,然后使用dump函數(shù)將其轉(zhuǎn)儲到一個文件中——這個過程叫做pickling。反之從存儲的字符串文件中提取原始Python對象的過程,叫做unpickling。

2. 什么是Python的命名空間?

在Python中,所有的名字都存在于一個空間中,它們在該空間中存在和被操作——這就是命名空間。它就好像一個盒子,每一個變量名字都對應(yīng)裝著一個對象。當(dāng)查詢變量的時候,會從該盒子里面尋找相應(yīng)的對象。

3. *args,**kwargs?參數(shù)是什么?

如果我們不確定要往函數(shù)中傳入多少個參數(shù),或者我們想往函數(shù)中以列表和元組的形式傳參數(shù)時,那就使要用*args;如果我們不知道要往函數(shù)中傳入多少個關(guān)鍵詞參數(shù),或者想傳入字典的值作為關(guān)鍵詞參數(shù)時,那就要使用**kwargs。

4. 負(fù)索引是什么?

Python中的序列索引可以是正也可以是負(fù)。如果是正索引,0是序列中的第一個索引,1是第二個索引。如果是負(fù)索引,(-1)是最后一個索引而(-2)是倒數(shù)第二個索引。

5. Python是如何進行內(nèi)存管理的?

Python的內(nèi)存管理是由私有heap空間管理的。所有的Python對象和數(shù)據(jù)結(jié)構(gòu)都在一個私有heap中。程序員沒有訪問該heap的權(quán)限,只有解釋器才能對它進行操作。為Python的heap空間分配內(nèi)存是由Python的內(nèi)存管理模塊進行的,其核心API會提供一些訪問該模塊的方法供程序員使用。Python有自帶的垃圾回收系統(tǒng),它回收并釋放沒有被使用的內(nèi)存,讓它們能夠被其他程序使用。

6. 如何判斷單向鏈表中是否有環(huán)

首先遍歷鏈表,尋找是否有相同地址,借此判斷鏈表中是否有環(huán)。如果程序進入死循環(huán),則需要一塊空間來存儲指針,遍歷新指針時將其和儲存的舊指針比對,若有相同指針,則該鏈表有環(huán),否則將這個新指針存下來后繼續(xù)往下讀取,直到遇見NULL,這說明這個鏈表無環(huán)。

7. mysql數(shù)據(jù)庫如何分區(qū)、分表?

分表可以通過三種方式:mysql集群、自定義規(guī)則和merge存儲引擎。

分區(qū)有四類:

RANGE 分區(qū):基于屬于一個給定連續(xù)區(qū)間的列值,把多行分配給分區(qū)。

LIST 分區(qū):類似于按RANGE分區(qū),區(qū)別在于LIST分區(qū)是基于列值匹配一個離散值集合中的某個值來進行選擇。

HASH分區(qū):基于用戶定義的表達(dá)式的返回值來進行選擇的分區(qū),該表達(dá)式使用將要插入到表中的這些行的列值進行計算。這個函數(shù)可以包含MySQL 中有效的、產(chǎn)生非負(fù)整數(shù)值的任何表達(dá)式。

KEY 分區(qū):類似于按HASH分區(qū),區(qū)別在于KEY分區(qū)只支持計算一列或多列,且MySQL 服務(wù)器提供其自身的哈希函數(shù)。必須有一列或多列包含整數(shù)值。

8. 如何對查詢命令進行優(yōu)化?

a. 應(yīng)盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索。

b. 應(yīng)盡量避免在 where 子句中對字段進行 null 值判斷,避免使用!=或<>操作符,避免使用 or 連接條件,或在where子句中使用參數(shù)、對字段進行表達(dá)式或函數(shù)操作,否則會導(dǎo)致權(quán)標(biāo)掃描

c. 不要在 where 子句中的“=”左邊進行函數(shù)、算術(shù)運算或其他表達(dá)式運算,否則系統(tǒng)將可能無法正確使用索引。

d. 使用索引字段作為條件時,如果該索引是復(fù)合索引,那么必須使用到該索引中的第一個字段作為條件時才能保證系統(tǒng)使用該索引,否則該索引將不會被使用。

e. 很多時候可考慮用 exists 代替 in

f. 盡量使用數(shù)字型字段

g. 盡可能的使用 varchar/nvarchar 代替 char/nchar

h. 任何地方都不要使用 select * from t ,用具體的字段列表代替“*”,不要返回用不到的任何字段。

i. 盡量使用表變量來代替臨時表。

j. 避免頻繁創(chuàng)建和刪除臨時表,以減少系統(tǒng)表資源的消耗。

k. 盡量避免使用游標(biāo),因為游標(biāo)的效率較差。

l. 在所有的存儲過程和觸發(fā)器的開始處設(shè)置 SET NOCOUNT ON ,在結(jié)束時設(shè)置 SET NOCOUNT OFF

m. 盡量避免大事務(wù)操作,提高系統(tǒng)并發(fā)能力。

n. 盡量避免向客戶端返回大數(shù)據(jù)量,若數(shù)據(jù)量過大,應(yīng)該考慮相應(yīng)需求是否合理。

9. 多進程與多線程的區(qū)別?

a. 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程。

b. 線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高。

c. 另外,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運行效率。

d. 線程在執(zhí)行過程中與進程還是有區(qū)別的。每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制。

e. 從邏輯角度來看,多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應(yīng)用,來實現(xiàn)進程的調(diào)度和管理以及資源分配。這就是進程和線程的重要區(qū)別。

10. select和epoll的區(qū)別?

a. select實現(xiàn)需要自己不斷輪詢所有fd集合,直到設(shè)備就緒,期間可能要睡眠和喚醒多次交替。而epoll其實也需要調(diào)用epoll_wait不斷輪詢就緒鏈表,期間也可能多次睡眠和喚醒交替,但是它是設(shè)備就緒時,調(diào)用回調(diào)函數(shù),把就緒fd放入就緒鏈表中,并喚醒在epoll_wait中進入睡眠的進程。雖然都要睡眠和交替,但是select在“醒著”的時候要遍歷整個fd集合,而epoll在“醒著”的時候只要判斷一下就緒鏈表是否為空就行了,這節(jié)省了大量的CPU時間。

b. select每次調(diào)用都要把fd集合從用戶態(tài)往內(nèi)核態(tài)拷貝一次,并且要把current往設(shè)備等待隊列中掛一次,而epoll只要一次拷貝,而且把current往等待隊列上掛也只掛一次(在epoll_wait的開始,注意這里的等待隊列并不是設(shè)備等待隊列,只是一個epoll內(nèi)部定義的等待隊列)。這也能節(jié)省不少的開銷。

11. TCP和UDP的區(qū)別?邊緣觸發(fā)和水平觸發(fā)的區(qū)別?

a. 基本區(qū)別:

  • 基于連接與無連接
  • TCP要求系統(tǒng)資源較多,UDP較少;
  • UDP程序結(jié)構(gòu)較簡單
  • 流模式(TCP)與數(shù)據(jù)報模式(UDP);
  • TCP保證數(shù)據(jù)正確性,UDP可能丟包
  • TCP保證數(shù)據(jù)順序,UDP不保證

b. 編程中的區(qū)別

  • socket()的參數(shù)不同
  • UDP Server不需要調(diào)用listen和accept
  • UDP收發(fā)數(shù)據(jù)用sendto/recvfrom函數(shù)
  • TCP:地址信息在connect/accept時確定
  • UDP:在sendto/recvfrom函數(shù)中每次均 需指定地址信息
  • UDP:shutdown函數(shù)無效

12. 下面的代碼能夠運行么?請解釋?

例如:


能夠運行。當(dāng)key缺失時,執(zhí)行DefaultDict類,字典的實例將自動實例化這個數(shù)列。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python函數(shù)基礎(chǔ)

    Python函數(shù)基礎(chǔ)

    這篇文章主要從函數(shù)開始介紹展開Python函數(shù),以最基本的函數(shù)定義方法描述,需要的朋友可以參考下文簡單的介紹
    2021-08-08
  • PyTorch中改變張量形狀的幾種方法小結(jié)

    PyTorch中改變張量形狀的幾種方法小結(jié)

    在深度學(xué)習(xí)領(lǐng)域,PyTorch 是一個廣泛使用的框架,它提供了豐富的API來處理張量(tensor),在模型開發(fā)過程中,我們經(jīng)常需要改變張量的形狀以滿足特定的需求,本文將介紹在 PyTorch 中改變張量形狀的幾種方法,需要的朋友可以參考下
    2025-02-02
  • Sanic框架應(yīng)用部署方法詳解

    Sanic框架應(yīng)用部署方法詳解

    這篇文章主要介紹了Sanic框架應(yīng)用部署方法,結(jié)合實例形式分析了Sanic框架應(yīng)用部署的具體流程、相關(guān)命令與使用技巧,并附帶說明了Gunicorn的配置方法,需要的朋友可以參考下
    2018-07-07
  • 通過Python編程將CSV文件導(dǎo)出為PDF文件的方法

    通過Python編程將CSV文件導(dǎo)出為PDF文件的方法

    CSV文件通常用于存儲大量的數(shù)據(jù),而PDF文件則是一種通用的文檔格式,便于與他人共享和打印,將CSV文件轉(zhuǎn)換成PDF文件可以幫助我們更好地管理和展示數(shù)據(jù),本文將介紹如何通過Python編程將CSV文件導(dǎo)出為PDF文件,需要的朋友可以參考下
    2024-06-06
  • Python常見反爬蟲機制解決方案

    Python常見反爬蟲機制解決方案

    這篇文章主要介紹了Python常見反爬蟲機制解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 寶塔部署django項目的實現(xiàn)步驟(圖文教程)

    寶塔部署django項目的實現(xiàn)步驟(圖文教程)

    本文主要介紹了寶塔部署django項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Pandas如何操作Excel

    Pandas如何操作Excel

    Pandas提供了便捷的方法來處理Excel文件,主要通過pandas.read_excel()和DataFrame.to_excel()函數(shù),這些函數(shù)支持多種參數(shù)來定制讀取和寫入的行為,包括文件路徑、工作表名稱、數(shù)據(jù)類型、日期解析等
    2025-01-01
  • python實現(xiàn)AdaBoost算法的示例

    python實現(xiàn)AdaBoost算法的示例

    這篇文章主要介紹了python實現(xiàn)AdaBoost算法的示例,幫助大家更好的理解和了解機器學(xué)習(xí)算法,感興趣的朋友可以了解下
    2020-10-10
  • Django自定義分頁效果

    Django自定義分頁效果

    這篇文章主要為大家詳細(xì)介紹了Django自定義分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • pytest-sugar?執(zhí)行過程中顯示進度條的腳本分享

    pytest-sugar?執(zhí)行過程中顯示進度條的腳本分享

    Pytest-sugar是一款用來改善控制臺顯示的插件,增加了進度條顯示,使得在用例執(zhí)行過程中可以看到進度條,而且進度條是根據(jù)用例是否通過標(biāo)注不同顏色,非常醒目,接下來通過本文給大家分享下pytest?sugar?顯示進度條的腳本,感興趣的朋友一起看看吧
    2022-12-12

最新評論

肇源县| 霍城县| 曲阳县| 太原市| 云南省| 宿州市| 延安市| 长葛市| 民勤县| 海城市| 南江县| 越西县| 塔城市| 宁南县| 田林县| 乐业县| 时尚| 宣汉县| 丰镇市| 宁波市| 大足县| 昭苏县| 洛隆县| 称多县| 子洲县| 望谟县| 五原县| 青铜峡市| 当涂县| 平湖市| 五河县| 常熟市| 张北县| 康乐县| 手机| 宕昌县| 淄博市| 襄垣县| 陕西省| 洪湖市| 太仆寺旗|