要使用Python作為更新的工作,您必須熟悉基礎知識。在這裡,我整理了一些基本的
Python面試問題和答案以及一些高級Python問題和答案,以幫助您完成面試。有Python開發人員面試問題,Python編碼面試問題,數據結構面試問題以及Python Scripting面試問題。深入研究Python編程面試問題。1,Python面試問題
問題1。Python的主要功能是什麼?
如果它是編程的入門語言,那麼Python必須具有某種意義。這些是它的品質:
- 解讀
- 動態類型
- 面向對象
- 簡潔明瞭
- 自由
- 有一個龐大的社區
事實上,這還不是全部。Python是如此之多。
Q.2。區分深層和淺層副本。
深拷貝將對象複製到另一個對象中。這意味著如果您對對象的副本進行更改,則不會影響原始對象。在Python中,我們使用函數deepcopy()為此,我們導入模塊副本。我們使用它像:
- >>>導入副本
- >>> b =複製。深度掃描(一)
深層複製 - Python面試問題與解答
但是,淺拷貝會將一個對象的引用複製到另一個對象。因此,如果我們在副本中進行更改,則會影響原始對象。為此,我們有函數copy()。我們使用它像:
- >>> b =複製。副本(一)
淺拷貝 - Python訪談問題和答案
Q.3。區分列表和元組。
主要區別在於列表是可變的,但元組是不可變的。例子:
- >>> MYLIST = [ 1 ,3 ,3 ]
- >>> mylist [ 1 ] = 2
- >>> mytuple = (1 ,3 ,3 )
- >>> mytuple [ 1 ] = 2
- 回溯(最近的呼叫最後):
- 在
中的文件“ ” ,第1 行 - mytuple [ 1 ] = 2
TypeError:'tuple'對象不支持項目分配
有關更多信息,請參閱元組與列表。
2.新生的基本Python面試問題
Q.4到Q.20是新手的一些基本Python面試問題,但是經驗也可以參考這些問題來修改基本概念。
Q.4。用Python解釋三元運算符。
與C ++不同,我們沒有?:在Python中,但我們有:
[on true] if [expression] else [on false]
如果表達式為True,則執行[on true]下的語句。否則,在[on false]下執行。
以下是如何使用它:
- >>> A,B = 2 ,3
- >>> min = a if a
- >>>分鐘
2
- >>> print (“Hi” )如果print (“Bye” )
你好
Q.5。如何在Python中實現多線程?
線程是一個輕量級進程,多線程允許我們一次執行多個線程。如您所知,Python是一種多線程語言。它有一個多線程包。
GIL(全局解釋器鎖)確保一次執行單個線程。一個線程保存GIL並在將其傳遞給下一個線程之前做了一些工作。這就產生了並行執行的錯覺。但實際上,只是線程輪流在CPU上。當然,所有傳遞都會增加執行的開銷。
問題6。解釋繼承。
當一個類繼承自另一個類時,它被稱為繼承自parent / base / super類的子/派生/子類。它繼承/獲取所有成員(屬性和方法)。
繼承使我們可以重用我們的代碼,並且還可以更輕鬆地創建和維護應用程序。Python支持以下類型的繼承:
- 單一繼承 - 類繼承自單個基類。
- 多重繼承 - 一個類繼承自多個基類。
- 多級繼承 - 類繼承自基類,而基類繼承自另一個基類。
- 分層繼承 - 多個類從單個基類繼承。
- 混合繼承 - 混合繼承是兩種或更多種類型的繼承的組合。
Q.7。什麼是Flask?
正如我們之前討論的那樣,Flask是一個用於Python的Web微框架。它基於'Werkzeug,Jinja 2和良好意圖'BSD許可證。它的兩個依賴項是Werkzeug和Jinja2。這意味著它幾乎不依賴於外部庫。因此,我們可以稱之為輕型框架。
會話使用簽名cookie來允許用戶查看和修改會話內容。它會記住從一個請求到另一個請求的信息。但是,要修改會話,用戶必須具有密鑰Flask.secret_key。
我們將在更進一步的課程中更詳細地討論Flask。
Q.8。如何在Python中管理內存?
Python有一個私有堆空間來容納所有對象和數據結構。作為程序員,我們無法訪問它; 它是管理它的解釋器。但是使用核心API,我們可以訪問一些工具。Python內存管理器控制分配。
此外,內置的垃圾收集器會回收所有未使用的內存,以便可以將其用於堆空間。
Q.9。在Python中解釋help()和dir()函數。
help()函數顯示文檔字符串及其參數的幫助。
- >>>導入副本
- >>> 幫助(copy.copy )
有關模塊複製中的功能複製的幫助:
副本(X)
對任意Python對象進行淺拷貝操作。
有關詳細信息,請參閱模塊的__doc__字符串。
dir()函數顯示對象的所有成員(任何類型)。
- >>> 目錄(copy.copy )
[ '__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__DIR__', '__doc__', '__eq__', '__format__',' __ge__”, '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__' ,'__ ne _','__ new__','__ equalname __','_ _ _ _ _ _ _ _'','_ _ _ _ _ _ _ _'''''''''''''''''''''__ _ _ _ _ _ _ _ _'''''''''''''''''
Q.10。每當你退出Python時,是否所有內存都被解除分配?
這裡的答案是否定的。具有循環引用其他對象或從全局命名空間引用的對象的模塊在退出Python時並不總是被釋放。
另外,不可能取消分配C庫保留的部分內存。
Q.11。什麼是monkey補丁?
在運行時動態修改類或模塊。
- >>> A類:
- def func (self ):
- 打印(“hi” )
- >>> def monkey (self ):
- 打印“hi,monkey”
- >>> mAfunc =monkey
- >>> a = m。A ()
- >>> a。func ()
嗨,猴子
Q.12。Python中的dictionary是什麼?
dictionary是我在C ++或Java等其他語言中從未見過的。它擁有鍵值對。
- >>>根= { 25 :5 ,16 :4 ,9 :3 ,4 :2 ,1 :1 }
- >>> 類型(根)
- < class'dict' >
- >>>根[ 9 ]
3
dictionary是可變的,我們也可以使用理解來創建它。
- >>>根= { X ** 2 :X為沿x 範圍(5 ,0 , - 1 )}
- >>>根
{25:5,16:4,9:3,4:2,1:1}
Q.13。* args和** kwargs是什麼意思?
如果我們不知道將多少個參數傳遞給函數,比如當我們想要傳遞一個列表或一個元組值時,我們使用* args。
- >>> def func (* args ):
- 因為我在args:
- 打印(i )
- >>> FUNC (3 ,2 ,1 ,4 ,7 )
3
2
1
4
7
**當我們不知道將會有多少關鍵字參數時,它會獲取關鍵字參數。
- >>> def func (** kwargs ):
- 對於我在kwargs:
- 打印 (i,kwargs [ i ] )
- >>> func (a = 1 ,b = 2 ,c = 7 )
A.1
B.2
C.7
args和kwargs這兩個詞是慣例,我們可以使用任何東西代替它們。
在基礎Python面試中有任何疑問問題和新生的答案?請在評論中提問。
Q.14。編寫Python邏輯來計算文件中的大寫字母數。
- >>>導入操作系統
- >>> os。chdir ('C:\\ Users \\ lifei \\ Desktop' )
- >>> with open ('Today.txt' )as today:
- count = 0
- 因為今天我。read ():
- 如果我。isupper ():
- count + = 1
- 打印(count)
26
Q.15。什麼是負面指數?
我們來看一個清單吧。
- >>> MYLIST = [ 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ]
與正面指數不同,負指數從右邊開始搜索。
- >>> mylist [ - 3 ]
6
這也有助於從後面切片:
- >>> mylist [ - 6 : - 1 ]
[3,4,5,6,7]
Q.16。你如何將列表的內容隨機化?
為此,我們將從模塊中隨機導入函數shuffle()。
- >>>來自隨機導入shuffle
- >>> shuffle (mylist )
- >>> mylist
[3,4,8,0,5,7,6,2,1]
Q.17。在Python中解釋join()和split()。
join()允許我們通過我們指定的字符將字符串中的字符連接在一起。
- >>> ',' 。加入('12345' )
'1,2,3,4,5'
split()允許我們在指定的字符周圍分割一個字符串。
- >>> '1,2,3,4,5' 。分裂(',' )
['1','2','3','4','5']
問題18。Python區分大小寫嗎?
如果區分myname和Myname之類的標識符,則語言區分大小寫。換句話說,它關心大小寫或大寫。讓我們用Python嘗試一下。
- >>> myname = 'Ayushi'
- >>> Myname
- Traceback(最近的呼叫最後):
- 在
中的文件“ ” ,第1 行
我的名字
NameError:未定義名稱“Myname”
如您所見,這引發了NameError。這意味著Python確實區分大小寫。
Q.19。標識符在Python中可以使用多長時間?
在Python中,標識符可以是任意長度。除此之外,我們必須遵循一些規則來命名一個:
- 它只能以下劃線或AZ或az中的字符開頭。
- 其餘部分可以包含以下內容:AZ / az / _ / 0-9。
- 正如我們在前一個問題中所討論的那樣,Python區分大小寫。
- 關鍵字不能用作標識符。Python有以下關鍵字:
和高清假進口不真正如德爾最後在要麼嘗試斷言ELIF對於是通過而打破其他從拉姆達打印同類除全球沒有提高產量繼續EXEC如果外地返回
Q.20。如何刪除字符串中的前導空格?
字符串中的前導空格是第一個非空白字符前的字符串中的空格。要從字符串中刪除它,我們使用方法lstrip()。
- >>> 'Ayushi' 。lstrip ()
'Ayushi'
如您所見,此字符串包含前導和尾隨空格。lstrip()去掉了前導空格的字符串。如果我們想要去掉尾隨空格,我們使用rstrip()。
- >>> 'Ayushi' 。rstrip ()
'Ayushi'
這些是基本的Python面試問題和新生的答案。
3.高級Python面試問題和經驗豐富的答案
Q. 21至Q. 35是一些針對體驗的高級Python面試問題及其答案和示例。
問題21。你如何將字符串轉換為小寫?
我們使用lower()方法。
- >>> 'AyuShi' 。低()
'ayushi'
要將它轉換為大寫,那麼我們使用upper()。
- >>> 'AyuShi' 。上()
'AYUSHI'
另外,要檢查字符串是全部大寫還是全部小寫,我們使用方法isupper()和islower()。
- >>> 'AyuShi' 。isupper ()
假
- >>> 'AYUSHI' 。isupper ()
真正
- >>> 'ayushi' 。islower ()
真正
- >>> '@ yu $ hi' 。islower ()
真正
- >>> '@ YU $ HI' 。isupper ()
真正
因此,像@和$這樣的字符就足夠了。
此外,istitle()將告訴我們字符串是否在標題中。
- >>> '屍體新娘' 。istitle ()
真正
Q.22。Python中的pass語句是什麼?
我們的代碼中可能有時候還沒有決定要做什麼,但我們必須輸入一些東西才能使它在語法上正確。在這種情況下,我們使用pass語句。
- >>> def func (* args ):
- 通過
- >>>
類似地,break語句突然出現循環。
- >>> for i in range (7 ):
- 如果我== 3 :休息
- 打印(i )
0
1
2
最後,continue語句跳到下一次迭代。
- >>> for i in range (7 ):
- 如果我== 3 :繼續
- 打印(i )
0
1
2
4
五
6
Q.23。什麼是Python中的閉包?
當嵌套函數引用其封閉範圍中的值時,會發生閉包。這裡的重點是它記住了價值。
- >>> def A (x ):
- def B ():
- 打印(x )
- 返回B.
- >>> A (7 )()
7
有關閉包的更多深度,請參閱Python中的閉包。
Q.24。解釋Python中的//,%和**運算符。
//運算符執行分層。它將返回除法結果的整數部分。
- >>> 7 // 2
3
正常師將在這裡返回3.5。
同樣,**執行取冪。a ** b將升高的值返回到冪b。
- >>> 2 ** 10
1024
最後,%是模數。這為我們提供了可實現最高分工後的價值。
- >>> 13 %7
6
- >>> 3.5 %1.5
0.5
高級Python面試中的任何疑問和經驗豐富的答案?請給出意見。
Q.24。我們在Python中有多少種運營商?解釋算術運算符。
這種類型的Python訪談問題和答案可以決定你的Python知識。用一些很好的例子回答Python面試問題。
在Python中,我們有7種運算符:算術,關係,賦值,邏輯,成員身份,身份和按位。
我們有七個算術運算符。這些允許我們對值執行算術運算:
- 加法(+)這會增加兩個值。
- >>> 7 + 8
15
- 減法( - )從第一個減去第二個值。
- >>> 7 - 8
-1
- 乘法(*)這乘以兩個數字。
- >>> 7 * 8
56
- 除法(/)這將第一個值除以第二個值。
- >>> 7 / 8
0.875
- >>> 1 / 1
1.0
對於分區,模數和取冪,請參考上一個問題。
問題25。在Python中解釋關係運算符。
關係運算符比較值。
- 小於(
- >>> 'hi' < '嗨'
False
- 大於(>)如果左側的值更大,則返回True。
- >>> 1.1 + 2.2 > 3.3
True
這是因為由於硬件依賴性,Python中的浮點算法存在缺陷。
- 小於或等於(<=)如果左邊的值小於或等於,則返回True。
- >>> 3.0 <= 3
True
- 大於或等於(> =)如果左邊的值大於或等於,則返回True。
- >>> True> = False
True
- 等於(==)如果兩個值相等,則返回True。
- >>> { 1 ,3 ,2 ,2 } == { 1 ,2 ,3 }
True
- 不等於(!=)如果兩個值不相等,則返回True。
- >>>真!= 0.1
True
- >>>錯誤!= 0.1
True
問題26。什麼是Python中的賦值運算符?
這是Python訪談中的重要面試問題。
我們可以將所有算術運算符與賦值符號組合。
- >>> a = 7
- >>> a + = 1
- >>> a
8
- >>> a- = 1
- >>> a
7
- >>> a * = 2
- >>> a
14
- >>> a / = 2
- >>> a
7
- >>> a ** = 2
- >>> a
49.0
- >>> a // = 3
- >>> a
16.0
- >>> a%= 4
- >>> a
0.0
Q.27。解釋Python中的邏輯運算符。
我們有三個邏輯運算符 - 或者,或者不是。
- >>>虛假和真實
假
- >>> 7 < 7 或True
真正
- >>>不是2 == 2
假
問題28。什麼是會員運營商?
通過運營商'in'和'not in',我們可以確認某個值是否是另一個的成員。
- >>> “我” 在“失望”
真正
- >>> '我們' 不是'失望'
真正
Q.29。在Python中解釋身份運算符。
這是一個非常常見的Python面試問題,並通過示例回答它。
運營商'是'和'不'告訴我們兩個值是否具有相同的身份。
- >>> 10 是'10'
假
- >>>真的不是假的
真正
問題30。最後,告訴我們Python中的按位運算符。
它們一點一點地對值進行操作。
- AND(&)這對每個位對執行&。
- >>> 0b110&0b010
2
- OR(|)執行| 在每個位對上。
- >>> 3 | 2
3
- XOR(^)這對每個位對執行異或運算。
- >>> 3 ^ 2
1
- 二進制一的補碼(〜)這將返回值的一個補碼。
- >>> ~ 2
-3
- 二進制左移(<
- >>> 1 << 2
4
這裡,001向左移動兩個位置得到100,這是二進制4。
- 二進制右移(>>)
- >>> 4 >> 2
1
有關運算符的更多信息,請參閱Python中的運算符。
Q.31。除了十進制數系統之外的數字,你將如何使用?
使用Python,可以用二進制,八進制和十六進制輸入數字。
- 二進制數由0和1組成。要輸入二進制,我們使用前綴0b或0B。
- >>> int (0b1010 )
10
要將數字轉換為二進制形式,我們使用bin()。
- >>> bin (0xf )
'0b1111'
- 八進制數可以包含0到7之間的數字。我們使用前綴0o或0O。
- >>> oct (8 )
'0o10'
- 十六進制數字可以包含0到15之間的數字。我們使用前綴0x或0X。
- >>> 六角(16 )
'為0x10'
- >>> 六角(15 )
'0xf'
問題32。如何獲得dictionary中所有鍵的列表?
具體在這些類型的Python面試問題和答案。
為此,我們使用功能鍵()。
- >>> mydict = { 'a' :1 ,'b' :2 ,'c' :3 ,'e' :5 }
- >>> mydict。鍵()
- dict_keys ([ 'a' ,'b' ,'c' ,'e' ] )
Q.33。為什麼帶有前導下劃線的標識符名稱被貶低?
由於Python沒有私有變量的概念,因此使用前導下劃線來聲明變量private是一種慣例。這就是為什麼我們不能對我們不想私有的變量這樣做。
Q.34。如何在一個聲明中聲明多個作業?
有兩種方法可以做到這一點:
- >>> A,B,C = 3 ,4 ,5 #此分配3,圖4和5所述的,b和C分別
- >>> a = b = c = 3 #這將3分配給a,b和c
Q.35。什麼是元組拆包?
首先,我們來討論元組包裝。這是一種將一組值打包成元組的方法。
- >>> mytuple = 3 ,4 ,5
- >>> mytuple
(3,4,5)
這將3,4和5打包成mytuple。
現在,我們將元組中的值解包為變量x,y和z。
- >>> x,y,z = mytuple
- >>> x + y + z
12
這些是高級Python面試問題和經驗答案
這些是一些重要的Python面試問題和答案,你應該在面試之前先看看。隨意添加一個問題。
這就是關於Python面試的問題和答案。希望大家多多關注。
閱讀更多 大數據信息站 的文章