欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python工程師必考的6個(gè)經(jīng)典面試題

 更新時(shí)間:2020年06月28日 08:06:41   作者:愛(ài)喝馬黛茶的安東尼  
在本篇文章里小編給大家分享的是一篇關(guān)于6個(gè)Python工程師必考的面試題,有需要的朋友們可以參考學(xué)習(xí)下。

第1題:Python里面如何實(shí)現(xiàn)tuple和list的轉(zhuǎn)換?

函數(shù)tuple(seq)可以把所有可迭代的(iterable)序列轉(zhuǎn)換成一個(gè)tuple, 元素不變,排序也不變

list轉(zhuǎn)為tuple:

temp_list = [1,2,3,4,5]

將temp_list進(jìn)行強(qiáng)制轉(zhuǎn)換:tuple(temp_list)

確定是否轉(zhuǎn)換成功:print(type(temp_list))

函數(shù)list(seq)可以把所有的序列和可迭代的對(duì)象轉(zhuǎn)換成一個(gè)list,元素不變,排序也不變

tuple轉(zhuǎn)為list:

temp_tuple = (1,2,3,4,5)

方法類似,也是進(jìn)行強(qiáng)制轉(zhuǎn)換即可:list(temp_tuple)

確定是否轉(zhuǎn)換成功:print(type(temp_tuple))

第2題:Python里面search()和match()的區(qū)別?

它們兩個(gè)都在re模塊中

·match()函數(shù)是在string的開(kāi)始位置匹配,如果不匹配,則返回None;

·search()會(huì)掃描整個(gè)string查找匹配;

match()

>>> import re
>>> print(re.match('hello','helloworld').span())  # 開(kāi)頭匹配到
(0, 5)
>>> print(re.match('hello','nicehelloworld').span()) # 開(kāi)頭沒(méi)有匹配到
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    print(re.match('hello','nicehelloworld').span())
AttributeError: 'NoneType' object has no attribute 'span'
>>>

search()

>>> print(re.search('a','abc'))
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> print(re.search('a','bac').span())
(1, 2)
>>>

結(jié)論:match() 使用限制更多

第3題: 如何用Python刪除一個(gè)文件?

os模塊的使用

os.remove(path)

刪除文件 path,刪除時(shí)候如果path是一個(gè)目錄, 拋出 OSError錯(cuò)誤。如果要?jiǎng)h除目錄,請(qǐng)使用rmdir()。

remove() 同 unlink() 的功能是一樣的

os.remove('a.txt')
os.removedirs(path)

遞歸地刪除目錄。類似于rmdir(), 如果子目錄被成功刪除, removedirs() 將會(huì)刪除父目錄;但子目錄沒(méi)有成功刪除,將拋出錯(cuò)誤。

例如,os.removedirs(“a/b/c”) 將首先刪除c目錄,然后刪除b和a,如果他們是空的話,則子目錄不能成功刪除,將拋出OSError異常

os.rmdir(path)

刪除目錄 path,要求path必須是個(gè)空目錄,否則拋出OSError錯(cuò)誤

第4題: is 和 == 的區(qū)別?

hon中對(duì)象包含的三個(gè)基本要素,分別是:id(身份標(biāo)識(shí))、type(數(shù)據(jù)類型)和value(值)

id 身份標(biāo)識(shí),就是在內(nèi)存中的地址

完整的舉例

>>> a = 'hello'
>>> b = 'hello'
>>> print(a is b)
True
>>> print(a==b)
True
>>> a = 'hello world'
>>> b = 'hello world'
>>> print(a is b)
False
>>> print(a == b)
True
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> print(a is b)
False
>>> print(a == b)
True
>>> a = [1,2,3]
>>> b = a
>>> print(a is b)
True
>>> print(a == b)
True
>>>

==是python標(biāo)準(zhǔn)操作符中的比較操作符,用來(lái)比較判斷兩個(gè)對(duì)象的value(值)是否相等

is也被叫做同一性運(yùn)算符(對(duì)象標(biāo)示符),這個(gè)運(yùn)算符比較判斷的是對(duì)象間的唯一身份標(biāo)識(shí),也就是id(內(nèi)存中的地址)是否相同

我們?cè)跈z查 a is b 的時(shí)候,其實(shí)相當(dāng)于檢查 id(a) == id(b)。而檢查a == b 的時(shí)候,實(shí)際是調(diào)用了對(duì)象 a 的 __eq()__ 方法,a == b 相當(dāng)于 a.__eq__(b)。

這里還有一個(gè)問(wèn)題,為什么 a 和 b 都是 “hello” 的時(shí)候,a is b 返回True,而 a 和 b都是 “hello world” 的時(shí)候,a is b 返回False呢?

這是因?yàn)榍耙环N情況下Python的字符串駐留機(jī)制起了作用。對(duì)于較小的字符串,為了提高系統(tǒng)性能Python會(huì)保留其值的一個(gè)副本,當(dāng)創(chuàng)建新的字符串的時(shí)候直接指向該副本即可。

所以 “hello” 在內(nèi)存中只有一個(gè)副本,a 和 b 的 id 值相同,而 “hello world” 是長(zhǎng)字符串,不駐留內(nèi)存,Python中各自創(chuàng)建了對(duì)象來(lái)表示 a 和 b,所以他們的值相同但 id 值不同。

試一下當(dāng)a=247,b=247時(shí)它們的id還是否會(huì)相等。事實(shí)上Python 為了優(yōu)化速度,使用了小整數(shù)對(duì)象池,避免為整數(shù)頻繁申請(qǐng)和銷毀內(nèi)存空間。而Python 對(duì)小整數(shù)的定義是 [-5, 257),只有數(shù)字在-5到256之間它們的id才會(huì)相等,超過(guò)了這個(gè)范圍就不行了。

>>> a = 247
>>> b = 247
>>> print(a is b)
True
>>> a = 258
>>> b = 258
>>> print(a is b)
False
>>>

is 是檢查兩個(gè)對(duì)象是否指向同一塊內(nèi)存空間,而 == 是檢查他們的值是否相等。is 比 == 更加嚴(yán)格。

第5題:a=1, b=2, 不用中間變量交換a和b的值?

方法一

>>> a = 5
>>> b = 6
>>> a = a+b
>>> b = a-b
>>> a = a-b

方法二

>>> a = a^b
>>> b = b^a
>>> a = a^b

方法三

a,b = b,a

第6題:說(shuō)說(shuō)你對(duì)zen of python的理解,你有什么辦法看到它?

Python之禪

import this

試題擴(kuò)展:

語(yǔ)言特性

1.談?wù)剬?duì) Python 和其他語(yǔ)言的區(qū)別
2.簡(jiǎn)述解釋型和編譯型編程語(yǔ)言
3.Python 的解釋器種類以及相關(guān)特點(diǎn)?
4.說(shuō)說(shuō)你知道的Python3 和 Python2 之間的區(qū)別?
5.Python3 和 Python2 中 int 和 long 區(qū)別?
6.xrange 和 range 的區(qū)別?

編碼規(guī)范

7.什么是 PEP8?
8.了解 Python 之禪么?
9.了解 docstring 么?
10.了解類型注解么?
11.例舉你知道 Python 對(duì)象的命名規(guī)范,例如方法或者類等
12.Python 中的注釋有幾種?
13.如何優(yōu)雅的給一個(gè)函數(shù)加注釋?
14.如何給變量加注釋?
15.Python 代碼縮進(jìn)中是否支持 Tab 鍵和空格混用。
16.是否可以在一句 import 中導(dǎo)入多個(gè)庫(kù)?
17.在給 Py 文件命名的時(shí)候需要注意什么?
18.例舉幾個(gè)規(guī)范 Python 代碼風(fēng)格的工具

到此這篇關(guān)于Python工程師必考的6個(gè)經(jīng)典面試題的文章就介紹到這了,更多相關(guān)6個(gè)Python工程師必考的面試題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python endswith()函數(shù)的具體使用

    Python endswith()函數(shù)的具體使用

    本文主要介紹了Python endswith()函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python讀取excel指定列生成指定sql腳本的方法

    Python讀取excel指定列生成指定sql腳本的方法

    今天小編就為大家分享一篇Python讀取excel指定列生成指定sql腳本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì)的處理方案

    Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì)的處理方案

    FastAPI 是一個(gè)非?,F(xiàn)代化和高效的框架,非常適合用于構(gòu)建高性能的 API,FastAPI 是一個(gè)用于構(gòu)建 API 的現(xiàn)代、快速(高性能)web 框架,基于 Python 類型提示,這篇文章主要介紹了Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì),需要的朋友可以參考下
    2024-08-08
  • Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    這篇文章主要介紹了Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 樹(shù)莓派(python)與arduino串口通信的詳細(xì)步驟

    樹(shù)莓派(python)與arduino串口通信的詳細(xì)步驟

    這篇文章主要介紹了樹(shù)莓派(python)與arduino串口通信的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Python屬性私有化詳解

    Python屬性私有化詳解

    私有化是為了實(shí)現(xiàn)更好的封裝形式。能隱藏屬性,不被隨意修改。以前置雙下劃線__屬性/方法名定義,但是結(jié)尾不能是雙下劃線。如果不讓某些屬性在類外部被隨意更改,可設(shè)置成私有屬性。在類定義的內(nèi)部可以訪問(wèn)
    2023-02-02
  • Python import自定義模塊方法

    Python import自定義模塊方法

    python包含子目錄中的模塊方法比較簡(jiǎn)單,關(guān)鍵是能夠在sys.path里面找到通向模塊文件的路徑。下面給大家介紹python import自定義模塊方法,需要的的朋友參考下
    2015-02-02
  • python實(shí)現(xiàn)靜態(tài)web服務(wù)器

    python實(shí)現(xiàn)靜態(tài)web服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)靜態(tài)web服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • selenium設(shè)置proxy、headers的方法(phantomjs、Chrome、Firefox)

    selenium設(shè)置proxy、headers的方法(phantomjs、Chrome、Firefox)

    這篇文章主要介紹了selenium設(shè)置proxy、headers的方法(phantomjs、Chrome、Firefox),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)并生成exe可執(zhí)行文件詳解流程

    Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)并生成exe可執(zhí)行文件詳解流程

    由于Python都會(huì)了,學(xué)校教的確實(shí)基礎(chǔ),平時(shí)就沒(méi)怎么去上課,讓美女老師天天腦殼痛,這不快畢業(yè)了,讓我做一個(gè)學(xué)生管理系統(tǒng)出來(lái),還要打包成exe發(fā)給她,她就不追究我不上課的問(wèn)題了
    2022-01-01

最新評(píng)論