下面列出的是關(guān)于Python編程語言的最常見面試問題和答案。
讓我們探索??!
#1)Python可以用于Web客戶端和Web服務(wù)器端編程嗎?哪一個最適合Python?
答案: Python由于具有創(chuàng)建業(yè)務(wù)邏輯,數(shù)據(jù)庫交互,Web服務(wù)器托管等的大量功能,因此最適合Web服務(wù)器端應(yīng)用程序開發(fā)。
但是,Python可以用作Web客戶端應(yīng)用程序,它需要瀏覽器進(jìn)行一些轉(zhuǎn)換才能解釋客戶端邏輯。另外,請注意,Python可用于創(chuàng)建可以作為獨(dú)立應(yīng)用程序運(yùn)行的桌面應(yīng)用程序,例如用于測試自動化的實(shí)用程序。
#2)與其他腳本語言(例如Javascript)相比,使用Python至少要帶來3-4個好處。
答:下面列出了使用Python的一些好處。
應(yīng)用程序開發(fā)更快,更容易。
模塊廣泛支持各種類型的應(yīng)用程序開發(fā),包括數(shù)據(jù)分析/機(jī)器學(xué)習(xí)/數(shù)學(xué)密集型應(yīng)用程序。
一個優(yōu)秀的支持社區(qū),可為您解答。
#3)說明列表,元組,集合和字典,并至少提供一個可以使用這些集合類型中的每一個的實(shí)例。
回答:
列表:可以在運(yùn)行時更改的不同數(shù)據(jù)類型的項(xiàng)目的集合。
元組:不能更改的不同數(shù)據(jù)類型的項(xiàng)目的集合。它僅具有對集合的只讀訪問權(quán)限。當(dāng)您要保護(hù)數(shù)據(jù)收集集并且不需要任何修改時,可以使用此方法。
集合:相似數(shù)據(jù)類型的項(xiàng)目的集合。
字典:具有鍵值對的項(xiàng)目的集合。
通常,列表和字典被程序員廣泛使用,因?yàn)樗鼈兌继峁┝藬?shù)據(jù)收集的靈活性。
#4)Python是否允許您以結(jié)構(gòu)化樣式進(jìn)行編程?
答:可以。它確實(shí)允許代碼是結(jié)構(gòu)化的以及面向?qū)ο蟮臉邮健?/span>它提供了出色的靈活性,可以根據(jù)您的應(yīng)用程序需求來設(shè)計和實(shí)現(xiàn)您的應(yīng)用程序代碼。
#5)在Python世界中什么是PIP軟件?
答: PIP是Python Installer Package的首字母縮寫,它提供了一個無縫接口來安裝各種Python模塊。它是一個命令行工具,可以在Internet上搜索軟件包并安裝它們,而無需任何用戶交互。
#6)基于Python的應(yīng)用程序開發(fā)的典型構(gòu)建環(huán)境應(yīng)該是什么?
答:您只需要安裝Python軟件并使用PIP,就可以安裝來自開源社區(qū)的各種Python模塊。
對于IDE,強(qiáng)烈建議將Pycharm用于具有廣泛支持插件的任何類型的應(yīng)用程序開發(fā)。另一個基本的IDE稱為RIDE,它是Python開放源代碼社區(qū)的一部分。
#7)可以使用哪些工具對Python代碼進(jìn)行單元測試?
答:最好和最簡單的方法是使用“ unittest” python標(biāo)準(zhǔn)庫來測試單元/類。支持的功能與其他單元測試工具(例如JUnit,TestNG)非常相似。
#8)For循環(huán)和While循環(huán)在Python中有何不同?何時選擇使用它們?
答: For循環(huán)通常用于遍歷各種集合類型的元素,例如List,Tuple,Set和Dictionary。
While循環(huán)是任何其他編程語言中使用的實(shí)際循環(huán)功能。這就是Python在處理循環(huán)方面與其他編程語言的不同之處。
#9)如何在Python中定義數(shù)據(jù)類型以及整數(shù)和十進(jìn)制數(shù)據(jù)類型保留多少字節(jié)?
答:在Python中,無需顯式定義變量的數(shù)據(jù)類型。
根據(jù)分配給變量的值,Python存儲適當(dāng)?shù)臄?shù)據(jù)類型。對于整數(shù),浮點(diǎn)數(shù)等數(shù)字,數(shù)據(jù)長度是無限的。
#10)如何在Python中使用數(shù)組?
答: Python不支持?jǐn)?shù)組。但是,您可以使用List收集類型,該類型可以存儲無限數(shù)量的元素。
#11)鑒于Python最適合服務(wù)器端應(yīng)用程序,您如何實(shí)現(xiàn)JSON?
答: Python內(nèi)置了處理JSON對象的支持。
您只需要導(dǎo)入JSON模塊并使用諸如加載和轉(zhuǎn)儲之類的功能即可將JSON字符串轉(zhuǎn)換為JSON對象,反之亦然。這是從服務(wù)器端處理和交換基于JSON的數(shù)據(jù)的直接方法。
#12)在Python中解析字符串和查找模式的最佳方法是什么?
答: Python內(nèi)置支持使用正則表達(dá)式模塊解析字符串。導(dǎo)入模塊并使用函數(shù)查找子字符串,替換字符串的一部分等。
#13)Python支持哪些數(shù)據(jù)庫?
答: MySQL(結(jié)構(gòu)化)和MongoDB(非結(jié)構(gòu)化)是Python本身支持的著名數(shù)據(jù)庫。導(dǎo)入模塊并開始使用功能與數(shù)據(jù)庫進(jìn)行交互。
#14)Python中_init_()函數(shù)的作用是什么?
答:這是在實(shí)例化類的對象時執(zhí)行的第一個函數(shù)。這等效于C ++中的構(gòu)造函數(shù)概念。
#15)對象方法中“ self”參數(shù)的意義是什么?我們是否應(yīng)該始終將此參數(shù)命名為“ self”?
答:參數(shù)“ self”用于引用類的對象屬性。
“ self”參數(shù)應(yīng)該以類對象屬性為前綴。問題第二部分的答案是“否”?!?self”參數(shù)可以有任何名稱。
#16)Lambda函數(shù)與Python中的普通函數(shù)有何不同?
答: Lambda與C編程中的內(nèi)聯(lián)函數(shù)相似。它返回一個函數(shù)對象。它僅包含一個表達(dá)式,并且可以接受任意數(shù)量的參數(shù)。
如果是普通函數(shù),則可以定義函數(shù)名稱,傳遞參數(shù)并強(qiáng)制具有return語句。Lambda函數(shù)通??捎糜诤唵尾僮?,而無需使用函數(shù)名。也可以代替變量使用。
#17)如何在Python中完成異常處理?
答:共有3個主要關(guān)鍵字,即try,except和finally,它們用于捕獲異常并相應(yīng)地處理恢復(fù)機(jī)制。嘗試是監(jiān)視錯誤代碼段。發(fā)生錯誤時,將執(zhí)行塊除外。
最后一個塊的好處是嘗試錯誤后執(zhí)行代碼。無論是否發(fā)生錯誤,都將執(zhí)行此塊。最后,塊用于執(zhí)行對象/變量的必需清除活動。
#18)Python代碼執(zhí)行的起點(diǎn)是什么?
答案:由于Python是解釋器,因此它開始從源文件中讀取代碼并開始執(zhí)行它們。
但是,如果要從主函數(shù)開始,則應(yīng)在源文件中將以下特殊變量設(shè)置為:
if__name __ ==“ __main__
main()
#19)列出Python中可用的一些重要模塊。
答:網(wǎng)絡(luò),數(shù)學(xué),密碼服務(wù),Internet數(shù)據(jù)處理和多線程模塊是重要的模塊。除此之外,Python開發(fā)人員社區(qū)還提供了其他幾個模塊。
#20)Python的哪個模塊可以用來衡量應(yīng)用程序代碼的性能?
答:時間模塊可用于計算應(yīng)用程序不同階段的時間,并使用日志記錄模塊以任何首選格式將數(shù)據(jù)記錄到文件系統(tǒng)中。
#21)如何在Python應(yīng)用程序的主流程中啟動子流程?
答: Python有一個稱為子進(jìn)程的內(nèi)置模塊。您可以導(dǎo)入此模塊,并使用run()或Popen()函數(shù)調(diào)用來啟動子進(jìn)程并獲得其返回代碼的控制權(quán)。
#22)由于Python更適合服務(wù)器端應(yīng)用程序,因此在服務(wù)器代碼中實(shí)現(xiàn)線程非常重要。如何在Python中實(shí)現(xiàn)?
答:我們應(yīng)該使用線程模塊來實(shí)現(xiàn),控制和銷毀線程,以并行執(zhí)行服務(wù)器代碼。鎖和信號量可用作同步對象,以管理不同線程之間的數(shù)據(jù)。
#23)我們是否需要調(diào)用顯式方法來銷毀Python中分配的內(nèi)存?
答:垃圾回收是Python的一項(xiàng)內(nèi)置功能,它負(fù)責(zé)分配和取消分配內(nèi)存。這與Java中的功能非常相似。
因此,您的應(yīng)用程序代碼中發(fā)生內(nèi)存泄漏的機(jī)會非常少。
#24)相同的Python代碼是否可以在多個平臺上運(yùn)行而無需任何更改?
答:可以。只要您在目標(biāo)平臺(Linux,Windows,Mac)上具有Python環(huán)境,就可以運(yùn)行相同的代碼。
#25)如何使用Python創(chuàng)建基于GUI的應(yīng)用程序以實(shí)現(xiàn)客戶端功能?
答: Python和標(biāo)準(zhǔn)庫Tkinter一起可用于創(chuàng)建基于GUI的應(yīng)用程序。Tkinter庫支持各種小部件,這些小部件可以創(chuàng)建和處理特定于小部件的事件。
問#26)Python識別哪些不同的環(huán)境變量?
回答:
PYTHONPATH:此環(huán)境變量可幫助解釋器確定在程序中導(dǎo)入的模塊文件的位置。
PYTHONSTARTUP:此環(huán)境變量包含包含源代碼的初始化文件的路徑。
PYTHONCASEOK:此變量用于在導(dǎo)入語句中查找第一個不區(qū)分大小寫的匹配項(xiàng)
#27)什么是Python元組?它與列表有什么不同?
答案:元組基本上是由逗號分隔并括在括號中的元素序列。
列出,而是由逗號分隔并括在方括號中的一系列元素。同樣,元組不能更新,而在列表中,元素及其大小可以更新。
#28)'#'符號在Python中有什么作用?
答案: “?!庇糜谧⑨尩粜泻蟮乃袃?nèi)容。
例:
print (“I am a beginner in Python”)輸出:
我是Python的初學(xué)者
#29)stringVar 是什么。strip()嗎?
答:這是刪除前導(dǎo)/尾隨空格的字符串方法之一。
#30)以下代碼的輸出應(yīng)該是什么:
a =“ pythontutorial” print('%。6s'%a)答:輸出應(yīng)為:python
#31)編寫命令以讀?。?/span>
一種。文件中的“ 10”個字符
b。讀取整個文件
c。一起執(zhí)行兩個命令后寫輸出。
文件名是“ softwaretestinghelp.txt”。
檔案文字:
Python是Guido van Rossum創(chuàng)建的功能強(qiáng)大的高級,面向?qū)ο蟮木幊陶Z言。
它具有簡單易用的語法,對于初次嘗試學(xué)習(xí)計算機(jī)編程的人來說,它是理想的語言。
回答:
f = open ("softwaretestinghelp.txt ", "r")輸出:
python是由Guido van Rossum創(chuàng)建的功能強(qiáng)大的高級,面向?qū)ο蟮木幊陶Z言。
它具有簡單易用的語法,對于初次嘗試學(xué)習(xí)計算機(jī)編程的人來說,它是理想的語言。
#32)Python中的成員運(yùn)算符是什么?寫一個例子來解釋兩者。
答: Python中有兩種類型的成員運(yùn)算符:
in:如果在序列中找到該值,則結(jié)果為true,否則為false
不在:如果未在序列中找到該值,則結(jié)果為true,否則為false
例:
|
輸出:
在給定列表中可用
b可用是列表
#33)編寫代碼以顯示當(dāng)前時間。
#34)如果str ='Python Language',print str [4:]的輸出是什么?
回答:
輸出:on Language
#35) 編寫命令以從字典中獲取所有鍵。
答案: print dict.keys()
#36)在python中編寫一個將字符串轉(zhuǎn)換為int的命令。
答案: int(x [,base])
#37)python 中的help ()和dir()是什么?
答: help()是一個內(nèi)置函數(shù),可用于返回特定對象,方法,屬性等的Python文檔。
dir()顯示作為參數(shù)傳遞的對象的屬性列表。如果dir()不帶參數(shù),則它將返回當(dāng)前本地空間中的名稱列表。
#38)“Monkey Patching”在Python中是什么意思?
答: Monkey Patching是指在運(yùn)行時修改模塊。
#39)在Python中,“套房”是什么意思?
答:一組單獨(dú)的語句,從而使邏輯代碼塊稱為套件
例:
如果表達(dá)套件其他套件
#40)Python中的range()是什么?舉例說明一下。
答:這是對數(shù)字序列進(jìn)行迭代的功能。
例:
for var in list(range (10))41)abs()和fabs()有什么區(qū)別?
答: abs()是一個內(nèi)置函數(shù),它也可用于整數(shù),浮點(diǎn)數(shù)和復(fù)數(shù)。
fabs()是在數(shù)學(xué)模塊中定義的,不適用于復(fù)數(shù)。
Q#42)編寫以下代碼的輸出:
str = “Python is a programming language”Answer: False
True
# 43)什么是from import語句并為其編寫語法?
答: From語句允許從當(dāng)前名稱空間中的模塊導(dǎo)入特定屬性。
語法:從modname導(dǎo)入name1 [,name2 [,…nameN]]
#44)locals()和globals()有什么區(qū)別?
答案: locals()是在函數(shù)內(nèi)訪問的,它返回可以從該函數(shù)本地訪問的所有名稱。
globals()返回可以從該函數(shù)全局訪問的所有名稱。
#45)Python中斷言的用途是什么?
答: Assert語句用于評估附加的表達(dá)式。如果表達(dá)式為假,則python引發(fā)AssertionError Exception。
#46)Python中的“匹配”和“搜索”有什么區(qū)別?
答: Match在字符串的開頭檢查匹配項(xiàng),而search在字符串的任何地方檢查匹配項(xiàng)
#47)淺拷貝和深拷貝有什么區(qū)別?
答案: 創(chuàng)建新實(shí)例類型時,將使用淺表復(fù)制,它會保留要復(fù)制的值,而深表復(fù)制則存儲已復(fù)制的值。
淺表副本的程序執(zhí)行速度較快,而深層副本的速度較慢。
#48)如果語法上需要該語句,但程序不需要采取任何措施,則在Python中使用什么語句?
答:通過聲明
列:
If(a>10)#49) PEP8是指什么?
答: PEP8是一種編碼約定,它是有關(guān)如何使代碼更具可讀性的一組建議。
#50)什么是* args和* kwargs?
答:它們用于將可變數(shù)量的參數(shù)傳遞給函數(shù)。* args用于傳遞非關(guān)鍵字可變長度參數(shù)列表,而* kwargs用于傳遞關(guān)鍵字可變長度參數(shù)列表。
聯(lián)系客服