国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python 常見(jiàn)的 170 道面試題全解析

2023-04-17 19:24 作者:編程小宇e  | 我要投稿


語(yǔ)言特性

1.談?wù)剬?duì) Python 和其他語(yǔ)言的區(qū)別

答:Python 是一門(mén)語(yǔ)法簡(jiǎn)潔優(yōu)美,功能強(qiáng)大無(wú)比,應(yīng)用領(lǐng)域非常廣泛,具有強(qiáng)大完備的第三方庫(kù),他是一門(mén)強(qiáng)類型的可移植、可擴(kuò)展,可嵌入的解釋型編程語(yǔ)言,屬于動(dòng)態(tài)語(yǔ)言。

拿 C 語(yǔ)言和 Python 比: Python 的第三方類庫(kù)比較齊全并且使用簡(jiǎn)潔,很少代碼就能實(shí)現(xiàn)一些功能,如果用 C 去實(shí)現(xiàn)相同的功能可能就比較復(fù)雜。但是對(duì)于速度來(lái)說(shuō) Python 的運(yùn)行速度相較于 C 就比較慢了。所以有利的同時(shí)也有弊端,畢竟我們的學(xué)習(xí)成本降低了。

2. 簡(jiǎn)述解釋型和編譯型編程語(yǔ)言

答:解釋型語(yǔ)言是在運(yùn)行程序的時(shí)候才翻譯,每執(zhí)行一次,要翻譯一次,效率較低。 編譯型就是直接編譯成機(jī)型可以執(zhí)行的,只翻譯一次,所以效率相對(duì)來(lái)說(shuō)較高。


3.Python 的解釋器種類以及相關(guān)特點(diǎn)?

答:

CPython c 語(yǔ)言開(kāi)發(fā)的,使用最廣的解釋器

IPython 基于 cPython 之上的一個(gè)交互式計(jì)時(shí)器,交互方式增強(qiáng)功能和 cPython 一樣

PyPy 目標(biāo)是執(zhí)行效率,采用 JIT 技術(shù)。對(duì) Python 代碼進(jìn)行動(dòng)態(tài)編譯,提高執(zhí)行效率

JPython 運(yùn)行在 Java 上的解釋器,直接把 Python 代碼編譯成 Java 字節(jié)碼執(zhí)行

IronPython 運(yùn)行在微軟 .NET 平臺(tái)上的解釋器,把 Python 編譯成 . NET 的字節(jié)碼。

4.Python3 和 Python2 的區(qū)別?

答: 這里例舉 5 條

print 在 Python3 中是函數(shù)必須加括號(hào),Python2 中 print 為 class。

Python2 中使用 xrange,Python3 使用 range。

Python2 中默認(rèn)的字符串類型默認(rèn)是 ASCII,Python3 中默認(rèn)的字符串類型是 Unicode。

Python2 中/的結(jié)果是整型,Python3 中是浮點(diǎn)類型。

Python2 中聲明元類:metaclass = MetaClass,Python3 中聲明元類:class newclass(metaclass=MetaClass):pass。

5. Python3 和 Python2 中 int 和 long 區(qū)別?

答:Python2 有 int 和 long 類型。int 類型最大值不能超過(guò) sys.maxint,而且這個(gè)最大值是平臺(tái)相關(guān)的。可以通過(guò)在數(shù)字的末尾附上一個(gè)L來(lái)定義長(zhǎng)整型,顯然,它比 int 類型表示的數(shù)字范圍更大。在 Python3 里,只有一種整數(shù)類型 int,大多數(shù)情況下,和 Python2中的長(zhǎng)整型類似。


6.xrange 和 range 的區(qū)別?

答:xrange 是在 Python2 中的用法,Python3 中只有 range xrange 用法與 range 完全相同,所不同的是生成的不是一個(gè) list 對(duì)象,而是一個(gè)生成器。

編碼規(guī)范

7. 什么是 PEP8?

答:PEP8 通常會(huì)聽(tīng)別人提到,但是具體的指什么內(nèi)容呢,簡(jiǎn)單介紹下。 《Python Enhancement Proposal #8》(8 號(hào) Python 增強(qiáng)提案)又叫 PEP8,他針對(duì)的 Python 代碼格式而編訂的風(fēng)格指南。


8.了解 Python 之禪么?

答:通過(guò) import this 語(yǔ)句可以獲取其具體的內(nèi)容。它告訴大家如何寫(xiě)出高效整潔的代碼。


9.了解 DocStrings 么?


答:DocStrings 文檔字符串是一個(gè)重要工具,用于解釋文檔程序,幫助你的程序文檔更加簡(jiǎn)單易懂。主要是解釋代碼作用的。


10.了解類型注解么?

答:PEP 484 引入了類型提示,這使得可以對(duì) Python 代碼進(jìn)行靜態(tài)類型檢查。 在使用 Ide 的時(shí)候可以獲取到參數(shù)的類型,更方便傳入?yún)?shù)。使用格式如下


def foo(num: int) -> None:

print(f接收到的數(shù)字是:{num})

介紹下這個(gè)簡(jiǎn)單例子,我們可以在函數(shù)的參數(shù)部分使用參數(shù)名+:+類型,來(lái)指定參數(shù)可以接受的類型,這里的話就是 num 參數(shù)為 int 類型,然后后面->接的是返回值的類型。這里返回值為 None,然后通過(guò) fstring 格式化字符串輸出傳入的數(shù)字。


11.例舉你知道 Python 對(duì)象的命名規(guī)范,例如方法或者類等

答:


類:總是使用首字母大寫(xiě)單詞串,如 MyClass。內(nèi)部類可以使用額外的前導(dǎo)下劃線。 變量:小寫(xiě),由下劃線連接各個(gè)單詞。方法名類似 常量:常量名所有字母大寫(xiě) 等


12.Python 中的注釋有幾種?

答:總體來(lái)說(shuō)分為兩種,單行注釋和多行注釋。


單行注釋在行首是 #。

多行注釋可以使用三個(gè)單引號(hào)或三個(gè)雙引號(hào),包括要注釋的內(nèi)容。

13. 如何優(yōu)雅的給一個(gè)函數(shù)加注釋?


答:可以使用 docstring 配合類型注解


14.如何給變量加注釋?

答:可以通過(guò)變量名:類型的方式如下


a: str = this is string type

15. Python 代碼縮進(jìn)中是否支持 Tab 鍵和空格混用。


答:不允許 tab 鍵和空格鍵混用,這種現(xiàn)象在使用 sublime 的時(shí)候尤為明顯。


一般推薦使用 4 個(gè)空格替代 tab 鍵。


16.是否可以在一句 import 中導(dǎo)入多個(gè)庫(kù)?

答:可以是可以,但是不推薦。因?yàn)橐淮螌?dǎo)入多個(gè)模塊可讀性不是很好,所以一行導(dǎo)入一個(gè)模塊會(huì)比較好。同樣的盡量少用 from modulename import *,因?yàn)榕袛嗄硞€(gè)函數(shù)或者屬性的來(lái)源有些困難,不方便調(diào)試,可讀性也降低了。


17.在給 Py 文件命名的時(shí)候需要注意什么?

答:給文件命名的時(shí)候不要和標(biāo)準(zhǔn)庫(kù)庫(kù)的一些模塊重復(fù),比如 abc。 另外要名字要有意義,不建議數(shù)字開(kāi)頭或者中文命名。


18.例舉幾個(gè)規(guī)范 Python 代碼風(fēng)格的工具

答:pylint 和 flake8


數(shù)據(jù)類型-字符串


19.列舉 Python 中的基本數(shù)據(jù)類型?

答: Python3 中有六個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型:字符串(String)、數(shù)字(Digit)、列表(List)、元組(Tuple)、集合(Sets)、字典(Dictionary)。


20.如何區(qū)別可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型

答: 從對(duì)象內(nèi)存地址方向來(lái)說(shuō)


可變數(shù)據(jù)類型:在內(nèi)存地址不變的情況下,值可改變(列表和字典是可變類型,但是字典中的 key 值必須是不可變類型)

不可變數(shù)據(jù)類型:內(nèi)存改變,值也跟著改變。(數(shù)字,字符串,布爾類型,都是不可變類型)可以通過(guò) id() 方法進(jìn)行內(nèi)存地址的檢測(cè)。

21. 將hello world轉(zhuǎn)換為首字母大寫(xiě)Hello World


答: 這個(gè)得看清題目是要求兩個(gè)單詞首字母都要大寫(xiě),如果只是第一個(gè)單詞首字母大小的話,只使用 capitalize 即可,但是這里是兩個(gè)單詞,所以用下面的方法。


arr = hello world.split( )

new_str = f{arr[0].capitalize()} {arr[1].capitalize()}

print(new_str)

后來(lái)評(píng)論中有朋友提到了下面的方法,這里感謝這位朋友提醒。方案如下


hello world.title()

非常簡(jiǎn)單一句話搞定。


22.如何檢測(cè)字符串中只含有數(shù)字?

答:可以通過(guò) isdigit 方法,例子如下


s1 = 12223.isdigit()

print(s1)


s2 = 12223a.isdigit()

print(s2)


#結(jié)果如下:

#True

#False

23. 將字符串ilovechina進(jìn)行反轉(zhuǎn)


答:


s1 = ilovechina[::-1]

print(s1)

24. Python 中的字符串格式化方式你知道哪些?


答:%s,format,fstring(Python3.6 開(kāi)始才支持,現(xiàn)在推薦的寫(xiě)法)


25.有一個(gè)字符串開(kāi)頭和末尾都有空格,比如“ adabdw ”,要求寫(xiě)一個(gè)函數(shù)把這個(gè)字符串的前后空格都去掉。

答:因?yàn)轭}目要是寫(xiě)一個(gè)函數(shù)所以我們不能直接使用 strip,不過(guò)我們可以把它封裝到函數(shù)啊


def strip_function(s1):

return s1.strip()


s1 = adabdw

print(strip_function(s1))

26. 獲取字符串”123456“最后的兩個(gè)字符。


答:切片使用的考察,最后兩個(gè)即開(kāi)始索引是 -2,代碼如下


a = 123456

print(a[-2::])

27. 一個(gè)編碼為 GBK 的字符串 S,要將其轉(zhuǎn)成 UTF-8 編碼的字符串,應(yīng)如何操作?


答:


a= S.encode(gbk).decode(utf-8,‘ignore’)

print(a)

28. (1)s=info:xiaoZhang 33 shandong,用正則切分字符串輸出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]。(2)a = 你好 中國(guó) ,去除多余空格只留一個(gè)空格。


答:


(1)我們需要根據(jù)冒號(hào)或者空格切分


import re


s = info:xiaoZhang 33 shandong

res = re.split(r:| , s)

print(res)

(2)


s = 你好 中國(guó)

print( .join(s.split()))

29. (1) 怎樣將字符串轉(zhuǎn)換為小寫(xiě)。 (2) 單引號(hào)、雙引號(hào)、三引號(hào)的區(qū)別?


答: (1) 使用字符串的 lower() 方法。


(2)單獨(dú)使用單引號(hào)和雙引號(hào)沒(méi)什么區(qū)別,但是如果引號(hào)里面還需要使用引號(hào)的時(shí)候,就需要這兩個(gè)配合使用了,然后說(shuō)三引號(hào),同樣的三引號(hào)也分為三單引號(hào)和三雙引號(hào),兩個(gè)都可以聲名長(zhǎng)的字符串時(shí)候使用,如果使用 docstring 就需要使用三雙引號(hào)。


30.數(shù)據(jù)類型 - 列表


已知 AList = [1,2,3,1,2],對(duì) AList 列表元素去重,寫(xiě)出具體過(guò)程。

答:


list(set(AList))


需要更多Python面試題? 點(diǎn)贊+評(píng)論python


Python 常見(jiàn)的 170 道面試題全解析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
荥经县| 深水埗区| 咸阳市| 凤庆县| 岗巴县| 赤水市| 彝良县| 子长县| 冀州市| 望城县| 高雄市| 灵璧县| 天峨县| 天气| 呼玛县| 安岳县| 德庆县| 泽普县| 阿拉善左旗| 富平县| 潞西市| 宜兴市| 万载县| 将乐县| 洛阳市| 清远市| 雷州市| 龙川县| 广元市| 扶余县| 湖口县| 太和县| 合肥市| 新巴尔虎左旗| 云龙县| 平顺县| 中宁县| 永善县| 普洱| 宝兴县| 屏东县|