2018年前35名Python面試問題和答案

要使用Python作為更新的工作,您必須熟悉基礎知識。在這裡,我整理了一些基本的

Python面試問題和答案以及一些高級Python問題和答案,以幫助您完成面試。有Python開發人員面試問題,Python編碼面試問題,數據結構面試問題以及Python Scripting面試問題。深入研究Python編程面試問題。

2018年前35名Python面試問題和答案

1,Python面試問題

問題1。Python的主要功能是什麼?

如果它是編程的入門語言,那麼Python必須具有某種意義。這些是它的品質:

  1. 解讀
  2. 動態類型
  3. 面向對象
  4. 簡潔明瞭
  5. 自由
  6. 有一個龐大的社區

事實上,這還不是全部。Python是如此之多。

Q.2。區分深層和淺層副本。

深拷貝將對象複製到另一個對象中。這意味著如果您對對象的副本進行更改,則不會影響原始對象。在Python中,我們使用函數deepcopy()為此,我們導入模塊副本。我們使用它像:

  1. >>>導入副本
  2. >>> b =複製。深度掃描(一)
2018年前35名Python面試問題和答案

深層複製 - Python面試問題與解答

但是,淺拷貝會將一個對象的引用複製到另一個對象。因此,如果我們在副本中進行更改,則會影響原始對象。為此,我們有函數copy()。我們使用它像:

  1. >>> b =複製。副本(一)
2018年前35名Python面試問題和答案

淺拷貝 - Python訪談問題和答案

Q.3。區分列表和元組。

主要區別在於列表是可變的,但元組是不可變的。例子:

  1. >>> MYLIST = [ 1 ,3 ,3 ]
  2. >>> mylist [ 1 ] = 2
  3. >>> mytuple = (1 ,3 ,3 )
  4. >>> mytuple [ 1 ] = 2
  5. 回溯(最近的呼叫最後):
  6. 中的文件“” ,第1 行
  7. 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]下執行。

以下是如何使用它:

  1. >>> A,B = 2 ,3
  2. >>> min = a if a
  3. >>>分鐘

2

  1. >>> print (“Hi” )如果print (“Bye” )

你好

Q.5。如何在Python中實現多線程?

線程是一個輕量級進程,多線程允許我們一次執行多個線程。如您所知,Python是一種多線程語言。它有一個多線程包。

GIL(全局解釋器鎖)確保一次執行單個線程。一個線程保存GIL並在將其傳遞給下一個線程之前做了一些工作。這就產生了並行執行的錯覺。但實際上,只是線程輪流在CPU上。當然,所有傳遞都會增加執行的開銷。

問題6。解釋繼承。

當一個類繼承自另一個類時,它被稱為繼承自parent / base / super類的子/派生/子類。它繼承/獲取所有成員(屬性和方法)。

繼承使我們可以重用我們的代碼,並且還可以更輕鬆地創建和維護應用程序。Python支持以下類型的繼承:

  1. 單一繼承 - 類繼承自單個基類。
  2. 多重繼承 - 一個類繼承自多個基類。
  3. 多級繼承 - 類繼承自基類,而基類繼承自另一個基類。
  4. 分層繼承 - 多個類從單個基類繼承。
  5. 混合繼承 - 混合繼承是兩種或更多種類型的繼承的組合。

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()函數顯示文檔字符串及其參數的幫助。

  1. >>>導入副本
  2. >>> 幫助(copy.copy )

有關模塊複製中的功能複製的幫助:

副本(X)

對任意Python對象進行淺拷貝操作。

有關詳細信息,請參閱模塊的__doc__字符串。

dir()函數顯示對象的所有成員(任何類型)。

  1. >>> 目錄(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補丁?

在運行時動態修改類或模塊。

  1. >>> A類:
  2. def func (self ):
  3. 打印(“hi” )
  4. >>> def monkey (self ):
  5. 打印“hi,monkey”
  6. >>> mAfunc =monkey
  7. >>> a = m。A ()
  8. >>> a。func ()

嗨,猴子

Q.12。Python中的dictionary是什麼?

dictionary是我在C ++或Java等其他語言中從未見過的。它擁有鍵值對。

  1. >>>根= { 25 :5 ,16 :4 ,9 :3 ,4 :2 ,1 :1 }
  2. >>> 類型(根)
  3. < class'dict' >
  4. >>>根[ 9 ]

3

dictionary是可變的,我們也可以使用理解來創建它。

  1. >>>根= { X ** 2 :X為沿x 範圍(5 ,0 , - 1 )}
  2. >>>根

{25:5,16:4,9:3,4:2,1:1}

Q.13。* args和** kwargs是什麼意思?

如果我們不知道將多少個參數傳遞給函數,比如當我們想要傳遞一個列表或一個元組值時,我們使用* args。

  1. >>> def func (* args ):
  2. 因為我在args:
  3. 打印(i )
  4. >>> FUNC (3 ,2 ,1 ,4 ,7 )

3

2

1

4

7

**當我們不知道將會有多少關鍵字參數時,它會獲取關鍵字參數。

  1. >>> def func (** kwargs ):
  2. 對於我在kwargs:
  3. 打印
    (i,kwargs [ i ] )
  4. >>> func (a = 1 ,b = 2 ,c = 7 )

A.1

B.2

C.7

args和kwargs這兩個詞是慣例,我們可以使用任何東西代替它們。

在基礎Python面試中有任何疑問問題和新生的答案?請在評論中提問。

Q.14。編寫Python邏輯來計算文件中的大寫字母數。

  1. >>>導入操作系統
  2. >>> os。chdir ('C:\\ Users \\ lifei \\ Desktop' )
  3. >>> with open ('Today.txt' )as today:
  4. count = 0
  5. 因為今天我。read ():
  6. 如果我。isupper
    ():
  7. count + = 1
  8. 打印(count)

26

Q.15。什麼是負面指數?

我們來看一個清單吧。

  1. >>> MYLIST = [ 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ]

與正面指數不同,負指數從右邊開始搜索。

  1. >>> mylist [ - 3 ]

6

這也有助於從後面切片:

  1. >>> mylist [ - 6 : - 1 ]

[3,4,5,6,7]

Q.16。你如何將列表的內容隨機化?

為此,我們將從模塊中隨機導入函數shuffle()。

  1. >>>來自隨機導入shuffle
  2. >>> shuffle (mylist )
  3. >>> mylist

[3,4,8,0,5,7,6,2,1]

Q.17。在Python中解釋join()和split()。

join()允許我們通過我們指定的字符將字符串中的字符連接在一起。

  1. >>> ',' 。加入('12345' )

'1,2,3,4,5'

split()允許我們在指定的字符周圍分割一個字符串。

  1. >>> '1,2,3,4,5' 。分裂(',' )

['1','2','3','4','5']

問題18。Python區分大小寫嗎?

如果區分myname和Myname之類的標識符,則語言區分大小寫。換句話說,它關心大小寫或大寫。讓我們用Python嘗試一下。

  1. >>> myname = 'Ayushi'
  2. >>> Myname
  3. Traceback(最近的呼叫最後):
  4. 中的文件“” ,第1 行

我的名字

NameError:未定義名稱“Myname”

如您所見,這引發了NameError。這意味著Python確實區分大小寫。

Q.19。標識符在Python中可以使用多長時間?

在Python中,標識符可以是任意長度。除此之外,我們必須遵循一些規則來命名一個:

  1. 它只能以下劃線或AZ或az中的字符開頭。
  2. 其餘部分可以包含以下內容:AZ / az / _ / 0-9。
  3. 正如我們在前一個問題中所討論的那樣,Python區分大小寫。
  4. 關鍵字不能用作標識符。Python有以下關鍵字:

和高清假進口不真正如德爾最後在要麼嘗試斷言ELIF對於是通過而打破其他從拉姆達打印同類除全球沒有提高產量繼續EXEC如果外地返回

Q.20。如何刪除字符串中的前導空格?

字符串中的前導空格是第一個非空白字符前的字符串中的空格。要從字符串中刪除它,我們使用方法lstrip()。

  1. >>> 'Ayushi' 。lstrip ()

'Ayushi'

如您所見,此字符串包含前導和尾隨空格。lstrip()去掉了前導空格的字符串。如果我們想要去掉尾隨空格,我們使用rstrip()。

  1. >>> 'Ayushi' 。rstrip ()

'Ayushi'

這些是基本的Python面試問題和新生的答案。

3.高級Python面試問題和經驗豐富的答案

Q. 21至Q. 35是一些針對體驗的高級Python面試問題及其答案和示例。

問題21。你如何將字符串轉換為小寫?

我們使用lower()方法。

  1. >>> 'AyuShi' 。()

'ayushi'

要將它轉換為大寫,那麼我們使用upper()。

  1. >>> 'AyuShi' 。()

'AYUSHI'

另外,要檢查字符串是全部大寫還是全部小寫,我們使用方法isupper()和islower()。

  1. >>> 'AyuShi' 。isupper ()

  1. >>> 'AYUSHI' 。isupper ()

真正

  1. >>> 'ayushi' 。islower ()

真正

  1. >>> '@ yu $ hi' 。islower ()

真正

  1. >>> '@ YU $ HI' 。isupper ()

真正

因此,像@和$這樣的字符就足夠了。

此外,istitle()將告訴我們字符串是否在標題中。

  1. >>> '屍體新娘' 。istitle ()

真正

Q.22。Python中的pass語句是什麼?

我們的代碼中可能有時候還沒有決定要做什麼,但我們必須輸入一些東西才能使它在語法上正確。在這種情況下,我們使用pass語句。

  1. >>> def func (* args ):
  2. 通過
  3. >>>

類似地,break語句突然出現循環。

  1. >>> for i in range (7 ):
  2. 如果我== 3 :休息
  3. 打印(i )

0

1

2

最後,continue語句跳到下一次迭代。

  1. >>> for i in range (7 ):
  2. 如果我== 3 :繼續
  3. 打印(i )

0

1

2

4

6

Q.23。什麼是Python中的閉包?

當嵌套函數引用其封閉範圍中的值時,會發生閉包。這裡的重點是它記住了價值。

  1. >>> def A (x ):
  2. def B ():
  3. 打印(x )
  4. 返回B.
  5. >>> A (7 )()

7

有關閉包的更多深度,請參閱Python中的閉包

Q.24。解釋Python中的//,%和**運算符。

//運算符執行分層。它將返回除法結果的整數部分。

  1. >>> 7 // 2

3

正常師將在這裡返回3.5。

同樣,**執行取冪。a ** b將升高的值返回到冪b。

  1. >>> 2 ** 10

1024

最後,%是模數。這為我們提供了可實現最高分工後的價值。

  1. >>> 13 %7

6

  1. >>> 3.5 %1.5

0.5

高級Python面試中的任何疑問和經驗豐富的答案?請給出意見。

Q.24。我們在Python中有多少種運營商?解釋算術運算符。

這種類型的Python訪談問題和答案可以決定你的Python知識。用一些很好的例子回答Python面試問題。

在Python中,我們有7種運算符:算術,關係,賦值,邏輯,成員身份,身份和按位。

我們有七個算術運算符。這些允許我們對值執行算術運算:

  1. 加法(+)這會增加兩個值。
  2. >>> 7 + 8

15

  1. 減法( - )從第一個減去第二個值。
  2. >>> 7 - 8

-1

  1. 乘法(*)這乘以兩個數字。
  2. >>> 7 * 8

56

  1. 除法(/)這將第一個值除以第二個值。
  2. >>> 7 / 8

0.875

  1. >>> 1 / 1

1.0

對於分區,模數和取冪,請參考上一個問題。

問題25。在Python中解釋關係運算符。

關係運算符比較值。

  1. 小於(
  2. >>> 'hi' < '嗨'

False

  1. 大於(>)如果左側的值更大,則返回True。
  2. >>> 1.1 + 2.2 > 3.3

True

這是因為由於硬件依賴性,Python中的浮點算法存在缺陷。

  1. 小於或等於(<=)如果左邊的值小於或等於,則返回True。
  2. >>> 3.0 <= 3

True

  1. 大於或等於(> =)如果左邊的值大於或等於,則返回True。
  2. >>> True> = False

True

  1. 等於(==)如果兩個值相等,則返回True。
  2. >>> { 1 ,3 ,2 ,2 } == { 1 ,2 ,3 }

True

  1. 不等於(!=)如果兩個值不相等,則返回True。
  2. >>>真!= 0.1

True

  1. >>>錯誤!= 0.1

True

問題26。什麼是Python中的賦值運算符?

這是Python訪談中的重要面試問題。

我們可以將所有算術運算符與賦值符號組合。

  1. >>> a = 7
  2. >>> a + = 1
  3. >>> a

8

  1. >>> a- = 1
  2. >>> a

7

  1. >>> a * = 2
  2. >>> a

14

  1. >>> a / = 2
  2. >>> a

7

  1. >>> a ** = 2
  2. >>> a

49.0

  1. >>> a // = 3
  2. >>> a

16.0

  1. >>> a%= 4
  2. >>> a

0.0

Q.27。解釋Python中的邏輯運算符。

我們有三個邏輯運算符 - 或者,或者不是。

  1. >>>虛假和真實

  1. >>> 7 < 7 或True

真正

  1. >>>不是2 == 2

問題28。什麼是會員運營商?

通過運營商'in'和'not in',我們可以確認某個值是否是另一個的成員。

  1. >>> “我” 在“失望”

真正

  1. >>> '我們' 不是'失望'

真正

Q.29。在Python中解釋身份運算符。

這是一個非常常見的Python面試問題,並通過示例回答它。

運營商'是'和'不'告訴我們兩個值是否具有相同的身份。

  1. >>> 10 是'10'

  1. >>>真的不是假的

真正

問題30。最後,告訴我們Python中的按位運算符。

它們一點一點地對值進行操作。

  1. AND(&)這對每個位對執行&。
  2. >>> 0b110&0b010

2

  1. OR(|)執行| 在每個位對上。
  2. >>> 3 | 2

3

  1. XOR(^)這對每個位對執行異或運算。
  2. >>> 3 ^ 2

1

  1. 二進制一的補碼(〜)這將返回值的一個補碼。
  2. >>> ~ 2

-3

  1. 二進制左移(<
  2. >>> 1 << 2

4

這裡,001向左移動兩個位置得到100,這是二進制4。

  1. 二進制右移(>>)
  2. >>> 4 >> 2

1

有關運算符的更多信息,請參閱Python中的運算符。

Q.31。除了十進制數系統之外的數字,你將如何使用?

使用Python,可以用二進制,八進制和十六進制輸入數字。

  1. 二進制數由0和1組成。要輸入二進制,我們使用前綴0b或0B。
  2. >>> int (0b1010 )

10

要將數字轉換為二進制形式,我們使用bin()。

  1. >>> bin (0xf )

'0b1111'

  1. 八進制數可以包含0到7之間的數字。我們使用前綴0o或0O。
  2. >>> oct (8 )

'0o10'

  1. 十六進制數字可以包含0到15之間的數字。我們使用前綴0x或0X。
  2. >>> 六角(16 )

'為0x10'

  1. >>> 六角(15 )

'0xf'

問題32。如何獲得dictionary中所有鍵的列表?

具體在這些類型的Python面試問題和答案。

為此,我們使用功能鍵()。

  1. >>> mydict = { 'a' :1 ,'b' :2 ,'c' :3 ,'e' :5 }
  2. >>> mydict。()
  3. dict_keys ([ 'a' ,'b' ,'c' ,'e' ] )

Q.33。為什麼帶有前導下劃線的標識符名稱被貶低?

由於Python沒有私有變量的概念,因此使用前導下劃線來聲明變量private是一種慣例。這就是為什麼我們不能對我們不想私有的變量這樣做。

Q.34。如何在一個聲明中聲明多個作業?

有兩種方法可以做到這一點:

  1. >>> A,B,C = 3 ,4 ,5 #此分配3,圖4和5所述的,b和C分別
  2. >>> a = b = c = 3 #這將3分配給a,b和c

Q.35。什麼是元組拆包?

首先,我們來討論元組包裝。這是一種將一組值打包成元組的方法。

  1. >>> mytuple = 3 ,4 ,5
  2. >>> mytuple

(3,4,5)

這將3,4和5打包成mytuple。

現在,我們將元組中的值解包為變量x,y和z。

  1. >>> x,y,z = mytuple
  2. >>> x + y + z

12

這些是高級Python面試問題和經驗答案

這些是一些重要的Python面試問題和答案,你應該在面試之前先看看。隨意添加一個問題。

這就是關於Python面試的問題和答案。希望大家多多關注。


分享到:


相關文章: