說(shuō)到好用簡(jiǎn)潔的大數(shù)據(jù)技術(shù),除了Hadoop落追、R等等盈滴,Python也是其中熠熠生輝的一員,因而廣受企業(yè)和商家的青睞轿钠。求職季巢钓,不少應(yīng)聘者在面試相關(guān)職業(yè)時(shí)都被要求掌握Python的用法。以下疗垛,大圣眾包威客平臺(tái)(www.dashengzb.cn)為各位準(zhǔn)備了25個(gè)Python面試的高頻問(wèn)答症汹,有意者記得收藏本文啦。
1.什么是Python贷腕?使用Python有什么好處背镇?
Python是一種編程語(yǔ)言,它有對(duì)象泽裳、模塊瞒斩、線程、異常處理和自動(dòng)內(nèi)存管理涮总。
它簡(jiǎn)潔胸囱、簡(jiǎn)單、方便瀑梗、容易擴(kuò)展烹笔,有許多自帶的數(shù)據(jù)結(jié)構(gòu),而且它開(kāi)源夺克。
2.什么是PEP8箕宙?
PEP8是一個(gè)編程規(guī)范,內(nèi)容是一些關(guān)于如何讓你的程序更具可讀性的建議铺纽。
3.什么是pickling和unpickling柬帕?
Pickle模塊讀入任何Python對(duì)象,將它們轉(zhuǎn)換成字符串狡门,然后使用dump函數(shù)將其轉(zhuǎn)儲(chǔ)到一個(gè)文件中——這個(gè)過(guò)程叫做pickling陷寝。反之從存儲(chǔ)的字符串文件中提取原始Python對(duì)象的過(guò)程,叫做unpickling其馏。
4.Python是如何被解釋的凤跑?
Python是一種解釋性語(yǔ)言,它的源代碼可以直接運(yùn)行叛复。Python解釋器會(huì)將源代碼轉(zhuǎn)換成中間語(yǔ)言仔引,之后再翻譯成機(jī)器碼再執(zhí)行扔仓。
5.Python是怎樣管理內(nèi)存的?
Python的內(nèi)存管理是由私有heap空間管理的咖耘。所有的Python對(duì)象和數(shù)據(jù)結(jié)構(gòu)都在一個(gè)私有heap中翘簇。程序員沒(méi)有訪問(wèn)該heap的權(quán)限,只有解釋器才能對(duì)它進(jìn)行操作儿倒。為Python的heap空間分配內(nèi)存是由Python的內(nèi)存管理模塊進(jìn)行的版保,其核心API會(huì)提供一些訪問(wèn)該模塊的方法供程序員使用。Python有自帶的垃圾回收系統(tǒng)夫否,它回收并釋放沒(méi)有被使用的內(nèi)存彻犁,讓它們能夠被其他程序使用。
6.有哪些工具可以幫助debug或做靜態(tài)分析凰慈?
PyChecker是一個(gè)靜態(tài)分析工具汞幢,它不僅能報(bào)告源代碼中的錯(cuò)誤,并且會(huì)報(bào)告錯(cuò)誤類型和復(fù)雜度溉瓶。Pylint是檢驗(yàn)?zāi)K是否達(dá)到代碼標(biāo)準(zhǔn)的另一個(gè)工具急鳄。
7.什么是Python裝飾器?
Python裝飾器是Python中的特有變動(dòng)堰酿,可以使修改函數(shù)變得更容易。
8.數(shù)組和元組之間的區(qū)別是什么张足?
數(shù)組和元組之間的區(qū)別:數(shù)組內(nèi)容是可以被修改的触创,而元組內(nèi)容是只讀的。另外为牍,元組可以被哈希哼绑,比如作為字典的關(guān)鍵字。
9.參數(shù)按值傳遞和引用傳遞是怎樣實(shí)現(xiàn)的碉咆?
Python中的一切都是類抖韩,所有的變量都是一個(gè)對(duì)象的引用。引用的值是由函數(shù)確定的疫铜,因此無(wú)法被改變茂浮。但是如果一個(gè)對(duì)象是可以被修改的,你可以改動(dòng)對(duì)象壳咕。
10.字典推導(dǎo)式和列表推導(dǎo)式是什么席揽?
它們是可以輕松創(chuàng)建字典和列表的語(yǔ)法結(jié)構(gòu)。
11.Python都有哪些自帶的數(shù)據(jù)結(jié)構(gòu)谓厘?
Python自帶的數(shù)據(jù)結(jié)構(gòu)分為可變的和不可變的幌羞。可變的有:數(shù)組竟稳、集合属桦、字典熊痴;不可變的有:字符串、元組聂宾、數(shù)愁拭。
12.什么是Python的命名空間?
在Python中亏吝,所有的名字都存在于一個(gè)空間中岭埠,它們?cè)谠摽臻g中存在和被操作——這就是命名空間。它就好像一個(gè)盒子蔚鸥,每一個(gè)變量名字都對(duì)應(yīng)裝著一個(gè)對(duì)象惜论。當(dāng)查詢變量的時(shí)候,會(huì)從該盒子里面尋找相應(yīng)的對(duì)象止喷。
13.Python中的lambda是什么概疆?
這是一個(gè)常被用于代碼中的單個(gè)表達(dá)式的匿名函數(shù)臀突。
14.為什么lambda沒(méi)有語(yǔ)句?
匿名函數(shù)lambda沒(méi)有語(yǔ)句的原因,是它被用于在代碼被執(zhí)行的時(shí)候構(gòu)建新的函數(shù)對(duì)象并且返回疚俱。
15.Python中的pass是什么?
Pass是一個(gè)在Python中不會(huì)被執(zhí)行的語(yǔ)句钾虐。在復(fù)雜語(yǔ)句中眼五,如果一個(gè)地方需要暫時(shí)被留白,它常常被用于占位符植康。
16.Python中什么是遍歷器旷太?
遍歷器用于遍歷一組元素,比如列表這樣的容器销睁。
17.Python中的unittest是什么供璧?
在Python中,unittest是Python中的單元測(cè)試框架冻记。它擁有支持共享搭建睡毒、自動(dòng)測(cè)試、在測(cè)試中暫停代碼冗栗、將不同測(cè)試迭代成一組演顾,等等的功能。
18.在Python中什么是slicing贞瞒?
Slicing是一種在有序的對(duì)象類型中(數(shù)組偶房,元組,字符串)節(jié)選某一段的語(yǔ)法军浆。
19.在Python中什么是構(gòu)造器棕洋?
生成器是實(shí)現(xiàn)迭代器的一種機(jī)制。它功能的實(shí)現(xiàn)依賴于yield表達(dá)式乒融,除此之外它跟普通的函數(shù)沒(méi)有兩樣掰盘。
20.Python中的docstring是什么摄悯?
Python中文檔字符串被稱為docstring,它在Python中的作用是為函數(shù)愧捕、模塊和類注釋生成文檔奢驯。
21.如何在Python中拷貝一個(gè)對(duì)象?
如果要在Python中拷貝一個(gè)對(duì)象次绘,大多時(shí)候你可以用copy.copy()或者copy.deepcopy()瘪阁。但并不是所有的對(duì)象都可以被拷貝。
22.Python中的負(fù)索引是什么邮偎?
Python中的序列索引可以是正也可以是負(fù)管跺。如果是正索引,0是序列中的第一個(gè)索引禾进,1是第二個(gè)索引豁跑。如果是負(fù)索引,(-1)是最后一個(gè)索引而(-2)是倒數(shù)第二個(gè)索引泻云。
23.如何將一個(gè)數(shù)字轉(zhuǎn)換成一個(gè)字符串艇拍?
你可以使用自帶函數(shù)str()將一個(gè)數(shù)字轉(zhuǎn)換為字符串。如果你想要八進(jìn)制或者十六進(jìn)制數(shù)宠纯,可以用oct()或hex()卸夕。
24.Xrange和range的區(qū)別是什么?
Xrange用于返回一個(gè)xrange對(duì)象征椒,而range用于返回一個(gè)數(shù)組娇哆。不管那個(gè)范圍多大,Xrange都使用同樣的內(nèi)存勃救。
25.Python中的模塊和包是什么?
在Python中治力,模塊是搭建程序的一種方式蒙秒。每一個(gè)Python代碼文件都是一個(gè)模塊,并可以引用其他的模塊宵统,比如對(duì)象和屬性晕讲。
一個(gè)包含許多Python代碼的文件夾是一個(gè)包。一個(gè)包可以包含模塊和子文件夾马澈。
作為一種解釋型瓢省、交互式、面向?qū)ο蟮母呒?jí)編程語(yǔ)言痊班,Python和別的一些使用標(biāo)點(diǎn)符號(hào)的語(yǔ)言不同勤婚,它使用了大量的英語(yǔ)單詞作為關(guān)鍵字,因而具有很好的可讀性涤伐。而且Python跟其他編程語(yǔ)言相比馒胆,有著更少的語(yǔ)法結(jié)構(gòu)缨称,因而深受個(gè)人和企業(yè)的喜愛(ài)。
(更多大數(shù)據(jù)與商業(yè)智能領(lǐng)域干貨祝迂、兼職機(jī)會(huì)及行業(yè)資源分享等請(qǐng)關(guān)注大圣眾包平臺(tái)睦尽,或添加大圣花花個(gè)人微信號(hào)(dashenghuaer),拉你入bigdata&BI交流群330648564型雳。)