国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
最常見的 35 個(gè) Python 面試題及答案(2018 版)

雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原文 Top 35 Python Interview Questions and Answers in 2018 ,作者 DataFlair Team。

翻譯 | 于志鵬   整理 | 凡江

1. Python 面試問(wèn)題及答案

作為一個(gè) Python 新手,你必須熟悉基礎(chǔ)知識(shí)。在本文中我們將討論一些 Python 面試的基礎(chǔ)問(wèn)題和高級(jí)問(wèn)題以及答案,以幫助你完成面試。包括 Python 開發(fā)問(wèn)題、編程問(wèn)題、數(shù)據(jù)結(jié)構(gòu)問(wèn)題、和 Python 腳本問(wèn)題。讓我們來(lái)深入研究這些問(wèn)題。

Python 面試問(wèn)題

Q.1. Python 的特點(diǎn)和優(yōu)點(diǎn)是什么?

Python 可以作為編程的入門語(yǔ)言,因?yàn)樗邆湟韵绿刭|(zhì):

1.  解釋性

2.  動(dòng)態(tài)特性

3.  面向?qū)ο?/p>

4.  語(yǔ)法簡(jiǎn)潔

5.  開源

6.  豐富的社區(qū)資源

實(shí)際上 Python 的優(yōu)點(diǎn)遠(yuǎn)不止這些,更詳細(xì)的介紹可以閱讀 Introduction to Python(  https://data-flair.training/blogs/python-tutorial/)

Q.2. 深拷貝和淺拷貝的區(qū)別是什么?

深拷貝是將對(duì)象本身復(fù)制給另一個(gè)對(duì)象。這意味著如果對(duì)對(duì)象的副本進(jìn)行更改時(shí)不會(huì)影響原對(duì)象。在 Python 中,我們使用 deepcopy()函數(shù)進(jìn)行深拷貝,使用方法如下:

深拷貝-Python 面試問(wèn)題及答案

淺拷貝是將對(duì)象的引用復(fù)制給另一個(gè)對(duì)象。因此,如果我們?cè)诟北局羞M(jìn)行更改,則會(huì)影響原對(duì)象。使用 copy()函數(shù)進(jìn)行淺拷貝,使用方法如下:

淺拷貝—Python 面試問(wèn)題及答案

Q.3. 列表和元祖有什么不同?

主要區(qū)別在于列表是可變的,元祖是不可變的??聪旅娴睦樱?/p>

會(huì)出現(xiàn)以下錯(cuò)誤提示:

TypeError: ‘tuple’  object does not support item assignment

關(guān)于列表和元祖的更多內(nèi)容參考 Tuples vs Lists(  https://data-flair.training/blogs/python-tuples-vs-lists/)

2. Python 面試基礎(chǔ)題

Q.4 到 Q.20 是新手經(jīng)常會(huì)被問(wèn)到的一些 Python 基礎(chǔ)題,有經(jīng)驗(yàn)的人也可以參考這些問(wèn)題來(lái)復(fù)習(xí)這些概念。

Q.4. 解釋 Python 中的三元表達(dá)式

與 C++不同, 在 Python 中我們不需要使用 ? 符號(hào),而是使用如下語(yǔ)法:

[on true] if []else [on false]

如果 [] 為真, 則 [on true] 部分被執(zhí)行。如果表示為假則 [on false] 部分被執(zhí)行

下面是例子:

2

Hi

Q.5. Python 中如何實(shí)現(xiàn)多線程?

線程是輕量級(jí)的進(jìn)程,多線程允許一次執(zhí)行多個(gè)線程。眾所周知,Python 是一種多線程語(yǔ)言,它有一個(gè)多線程包。

GIL(全局解釋器鎖)確保一次執(zhí)行單個(gè)線程。一個(gè)線程保存 GIL 并在將其傳遞給下一個(gè)線程之前執(zhí)行一些操作,這就產(chǎn)生了并行執(zhí)行的錯(cuò)覺(jué)。但實(shí)際上,只是線程輪流在 CPU 上。當(dāng)然,所有傳遞都會(huì)增加執(zhí)行的開銷。

Q.6. 解釋繼承

一個(gè)類繼承自另一個(gè)類,也可以說(shuō)是一個(gè)孩子類/派生類/子類,繼承自父類/基類/超類,同時(shí)獲取所有的類成員(屬性和方法)。

繼承使我們可以重用代碼,并且還可以更方便地創(chuàng)建和維護(hù)代碼。Python 支持以下類型的繼承:

1.  單繼承- 一個(gè)子類類繼承自單個(gè)基類

2.  多重繼承- 一個(gè)子類繼承自多個(gè)基類

3.  多級(jí)繼承- 一個(gè)子類繼承自一個(gè)基類,而基類繼承自另一個(gè)基類

4.  分層繼承- 多個(gè)子類繼承自同一個(gè)基類

5.  混合繼承- 兩種或兩種以上繼承類型的組合

關(guān)于繼承的更多內(nèi)容參考 Python Inheritance(  https://data-flair.training/blogs/python-inheritance/)

Q.7. 什么是 Flask?

Flask 是一個(gè)使用 Python 編寫的輕量級(jí) Web 應(yīng)用框架,使用 BSD 授權(quán)。其 WSGI 工具箱采用 Werkzeug,模板引擎則使用 Jinja2。除了 Werkzeug 和 Jinja2 以外幾乎不依賴任何外部庫(kù)。因?yàn)?Flask 被稱為輕量級(jí)框架。

Flask 的會(huì)話會(huì)話使用簽名 cookie 來(lái)允許用戶查看和修改會(huì)話內(nèi)容。它會(huì)記錄從一個(gè)請(qǐng)求到另一個(gè)請(qǐng)求的信息。但如果要修改會(huì)話,則必須有密鑰 Flask.secret_key。

我們將在后續(xù)的課程中進(jìn)一步討論 Flask。

Q.8. 如何在 Python 中管理內(nèi)存?

Python 用一個(gè)私有堆內(nèi)存空間來(lái)放置所有對(duì)象和數(shù)據(jù)結(jié)構(gòu),我們無(wú)法訪問(wèn)它。由解釋器來(lái)管理它。不過(guò)使用一些核心 API,我們可以訪問(wèn)一些 Python 內(nèi)存管理工具控制內(nèi)存分配。

Q.9. 解釋 Python 中的 help() 函數(shù)和 dir() 函數(shù)。

help() 函數(shù)返回幫助文檔和參數(shù)說(shuō)明:

運(yùn)行結(jié)果如下:

Help on function copy in module copy

copy(x)

Shallow copy operation on arbitrary Python objects.

See the module』s __doc__ string for more info.

dir() 函數(shù)返回對(duì)象中的所有成員 (任何類型)

Q.10. 當(dāng)退出 Python 時(shí)是否釋放所有內(nèi)存分配?

答案是否定的。那些具有對(duì)象循環(huán)引用或者全局命名空間引用的變量,在 Python 退出是往往不會(huì)被釋放

另外不會(huì)釋放 C 庫(kù)保留的部分內(nèi)容。

Q.11. 什么是猴子補(bǔ)???

在運(yùn)行時(shí)動(dòng)態(tài)修改類和模塊

Hi, monkey

Q.12. 什么是 Python 字典?

字典是我在 C++和 Java 中沒(méi)有見過(guò)的數(shù)據(jù)結(jié)構(gòu),它擁有鍵-值對(duì)

3

字典是可變的,我們也可以用推導(dǎo)式的方式創(chuàng)建它.

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

要了解更多字典的內(nèi)容請(qǐng)點(diǎn)擊 Python Dictionaries(  https://data-flair.training/blogs/python-dictionaries/)

Q.13. 能否解釋一下 *args 和 **kwargs?

如果我們不知道將多少個(gè)參數(shù)傳遞給函數(shù),比如當(dāng)我們想傳遞一個(gè)列表或一個(gè)元組值時(shí),就可以使用*args。

3

2

1

4

7

當(dāng)我們不知道將會(huì)傳入多少關(guān)鍵字參數(shù)時(shí),使用**kwargs 會(huì)收集關(guān)鍵字參數(shù)。

a.1

b.2

c.7

使用 args 和 kwargs 作為參數(shù)名只是舉例,可以任意替換。

對(duì)于 Python 的基礎(chǔ)題任何疑問(wèn),請(qǐng)?jiān)谠u(píng)論區(qū)提問(wèn)。

Q.14. 編程實(shí)現(xiàn)計(jì)算文件中的大寫字母數(shù)

26

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

我們先創(chuàng)建如下列表:

與正索引不同,負(fù)索引是從右邊開始檢索。

6

同樣可以用于列表的切片:

[3, 4, 5, 6, 7]

Q.16. 如何隨機(jī)打亂列表中元素,要求不引用額外的內(nèi)存空間?

我們用 random 包中的 shuffle() 函數(shù)來(lái)實(shí)現(xiàn)。

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

Q.17. 解釋 Python 中的 join() 和 split() 函數(shù)

join() 函數(shù)可以將指定的字符添加到字符串中。

‘1,2,3,4,5’

split() 函數(shù)可以用指定的字符分割字符串

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

Q.18. Python 區(qū)分大小寫嗎?

驗(yàn)證 Python 是否區(qū)分大小寫的方法是測(cè)試 myname 和 Myname 在程序中是不是算同一個(gè)標(biāo)識(shí)符。觀察以下代碼的返回結(jié)果:

Myname

NameError: name  ‘Myname’ is not defined

如你所見,這里出現(xiàn)了 NameError,所以 Python 是區(qū)分大小的語(yǔ)言。

Q.19. Python 中標(biāo)識(shí)符的命名規(guī)則?

Python 中的標(biāo)識(shí)符可以是任意長(zhǎng)度,但必須遵循以下命名規(guī)則:

1.  只能以下劃線或者 A-Z/a-z 中的字母開頭。

2.  其余部分只能使用 A-Z/a-z/0-9。

3.  Python 標(biāo)識(shí)符區(qū)分大小寫。

4.  關(guān)鍵字不能作為標(biāo)識(shí)符。Python 有以下這些關(guān)鍵字:

Q.20. 如何刪除字符串中的前置空格

前置空格是第一個(gè)非空格字符前的所有空格,使用 lstrip() 函數(shù)來(lái)刪除.

‘Ayushi   ‘

如圖這個(gè)字符串既包含前置空格也包含后置空格. 調(diào)用 lstrip() 函數(shù)去除了前置空格。如果想去除后置空格,使用 rstrip() 函數(shù)。

‘   Ayushi’

以上是面向 Python 新手的基礎(chǔ)題部分。

3. Python 面試進(jìn)階題

Q. 21 至 Q. 35 是針對(duì)有經(jīng)驗(yàn)者的一些 Python 面試問(wèn)題及其答案和示例。

Q.21. 如何將字符串轉(zhuǎn)換為小寫?

使用 lower() 函數(shù)

‘a(chǎn)yushi’

轉(zhuǎn)換為大寫用 upper() 函數(shù)

‘AYUSHI’

要檢查字符串是否為全大寫或全小寫,使用 isupper() 和 islower() 函數(shù)

像 @ 和$這樣的字符即滿足大寫也滿足小寫。

istitle() 可以檢查字符串是否是標(biāo)題格式。

True

Q.22. Python 中的 pass 語(yǔ)句有什么作用?

我們?cè)趯懘a時(shí),有時(shí)可能只寫了函數(shù)聲明而沒(méi)想好函數(shù)怎么寫,但為了保證語(yǔ)法檢查的正確必須輸入一些東西。在這種情況下,我們使用 pass 語(yǔ)句。

類似的 break 語(yǔ)句可以跳出循環(huán)。

0

1

2

continue 語(yǔ)句可以跳到下一輪循環(huán)。

0

1

2

4

5

6

Q.23. 請(qǐng)解釋 Python 中的閉包?

如果在一個(gè)內(nèi)部函數(shù)里。對(duì)在外部作用域(但不是在全局作用域)的變量進(jìn)行引用,那么內(nèi)部函數(shù)就是一個(gè)閉包。

7

閉包的詳細(xì)解釋請(qǐng)點(diǎn)擊 Closures in Python。(https://data-flair.training/blogs/python-closure/)

Q.24. 解釋 Python 中的//,%和**運(yùn)算符

//運(yùn)算符執(zhí)行地板除法,返回結(jié)果的整數(shù)部分 (向下取整)。

3

用/符號(hào)除法結(jié)果為 3.5。

**符號(hào)表示取冪. a**b 返回 a 的 b 次方

1024

% 是取模符號(hào)。返回除法后的余數(shù)。

6

0.5

對(duì)于 Python 進(jìn)階面試問(wèn)題和答案有任何疑問(wèn)請(qǐng)?jiān)谠u(píng)論區(qū)提問(wèn)。

Q.24. Python 中有多少種運(yùn)算符,解釋算術(shù)運(yùn)算符。

這類面試問(wèn)題可以判斷你的 Python 功底,可以舉一些實(shí)例來(lái)回答這類問(wèn)題。

在 Python 中我們有 7 中運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系 (比較) 運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。

1.  加號(hào) (+) 將兩個(gè)對(duì)象的值相加。

15

2.  減號(hào) (-) 將第一個(gè)對(duì)象的值減去第二個(gè)對(duì)象的值。

-1

3.  乘號(hào) (*) 將兩個(gè)對(duì)象的值相乘。

56

4.  除號(hào) (/) 將第一個(gè)對(duì)象的值除以第二個(gè)對(duì)象的值。

0.875

1.0

關(guān)于地板除法、取模和取冪,請(qǐng)參考上一個(gè)問(wèn)題。

Q.25. 解釋 Python 中的關(guān)系運(yùn)算符。

關(guān)系運(yùn)算符用來(lái)比較兩個(gè)對(duì)象。

1.  判斷小于 (<):如果符號(hào)左邊的值比右邊小則返回 True。

False

2.  判斷大于 (>):如果符號(hào)左邊的值比右邊大則返回 True。

True

出現(xiàn)上面的錯(cuò)誤結(jié)果是因?yàn)?Python 的浮點(diǎn)運(yùn)算存在一些 Bug。

3.  判斷小于等于 (<=):如果符號(hào)左邊的值小于或等于右邊則返回 True。

True

4.  大判斷于等于 (>=):如果符號(hào)左邊的值大于或等于右邊則返回 True。

True

5.  判斷等于 (==) 如果符號(hào)兩邊的值相等則返回 True。

True

6.  判斷不等于 (!=) 如果符號(hào)兩邊的值不等則返回 True。

True

True

Q.26. 解釋 Python 中的賦值和算數(shù)運(yùn)算符?

這是面試中的常見題目。我們將算數(shù)運(yùn)算符和賦值符號(hào)放在一起介紹。

Q.27. 解釋 Python 中的邏輯運(yùn)算符

Python 中有三個(gè)邏輯運(yùn)算符:and、or、not

Q.28. 解釋 Python 中的成員運(yùn)算符

使用 in 和 not in 運(yùn)算符我們可以判斷某個(gè)值是否在成員中。

Q.29. 解釋 Python 中的身份運(yùn)算符

這是非常常見的 Python 面試題,用下面的示例來(lái)回答.

is 和 not is 運(yùn)算符可以判斷兩個(gè)對(duì)象是否相同

Q.30. 解釋 Python 中的位運(yùn)算符

此運(yùn)算符按二進(jìn)制位對(duì)值進(jìn)行操作。

1.  與 (&) 返回按位與結(jié)果

2.  或 (|) 返回按位或結(jié)果

3.  異或 (^) 返回按位異或結(jié)果

1

4.  取反 (~) 返回按位取反結(jié)果

-3

5.  左移位 (<<) 將符號(hào)左邊數(shù)的二進(jìn)制左移右邊數(shù)位

4

1 的二級(jí)制 001 左移 2 位變成 100 也即十進(jìn)制的 4

6.  右移位 (>>)

1

想了解關(guān)于位運(yùn)算符的更多內(nèi)容請(qǐng)點(diǎn)擊 Operators in Python(https://data-flair.training/blogs/python-operators/)

Q.31. 如何在 Python 使用多進(jìn)制數(shù)字?

除十進(jìn)制以外,在 Python 中還可以使用二進(jìn)制、八進(jìn)制、十六進(jìn)制。

1.  二進(jìn)制數(shù)有 0 和 1 組成,我們使用 0b 或 0B 前綴表示二進(jìn)制數(shù)

10

使用 bin() 函數(shù)可以將數(shù)字轉(zhuǎn)換為二進(jìn)制

‘0b1111’

2.  八進(jìn)制數(shù)由數(shù)字 0-7 組成,使用前綴 0o 或 0O 表示 8 進(jìn)制數(shù)

‘0o10’

3.  十六進(jìn)數(shù)由數(shù)字 0-15 組成,使用前綴 0x 或者 0X 表示 16 進(jìn)制數(shù)

‘0x10’

‘0xf’

Q.32. 如何獲取字典中的所有鍵?

使用 keys() 來(lái)獲取字典中的所有鍵

Q.33. 問(wèn)什么標(biāo)識(shí)符不建議使用下劃線開頭?

因?yàn)樵?Python 中以下劃線開頭的變量為私有變量,如果你不想讓變量私有,就不要使用下劃線開頭。

Q.34. 如何聲明多個(gè)變量并賦值?

有兩種方式:

Q.35. 什么是元組的解封裝?

首先我們來(lái)介紹元組封裝:

(3, 4, 5)

將 3,4,5 封裝到元組 mytuple 中。

現(xiàn)在我們要將這些值解封裝到變量 x,y,z 中

12

以上是 Python 高級(jí)面試問(wèn)題和答案,新手也可以參考這些問(wèn)題以獲得進(jìn)階的 Python 知識(shí)。

4. 結(jié)束語(yǔ)

本篇文章介紹了一些重要的 Python 面試問(wèn)題和答案,后續(xù)我們還會(huì)增加。在你面試之前應(yīng)該熟練掌握這些。如有想添加的問(wèn)題歡迎隨時(shí)評(píng)論。

原文鏈接:https://data-flair.training/blogs/top-python-interview-questions-answer/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python——python基礎(chǔ)
一套北京上市公司的Python面試題解答,讓你明白基礎(chǔ)扎實(shí)是多重要
python 基礎(chǔ)知識(shí)
【Python
Python基礎(chǔ)教程(補(bǔ)中秋的文章)
Python有哪些運(yùn)算符?用法介紹!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服