本篇內(nèi)容主要講解“Python面試題及答案有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習“Python面試題及答案有哪些”吧!
創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的做網(wǎng)站、成都網(wǎng)站建設(shè)質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式營銷型網(wǎng)站需求,讓再小的高端網(wǎng)站設(shè)計也能產(chǎn)生價值!
第一題 、== 和 is 的區(qū)別?
== 比較的是值,is比較的是值和引用(對象內(nèi)存空間)
比如:
>>> a = 123>>> b = 123>>> a == bTrue>>> a is bTrue>>> id(a)9670848>>> id(b)9670848
只要是不可變類型變量(數(shù)值型,字符串),只要值一樣,對象內(nèi)存空間也一樣。
可變類型變量的is 和 ==
>>> c = [1,2,3]>>> d = [1,2,3]>>> c == dTrue>>> c is bFalse>>> id(c)140470599331072>>> id(d)140470599331200
對于可變類型,每一個變量的內(nèi)存空間都是不一樣的。
第二題、Python中單下劃線_foo與雙下劃線__foo與__foo__的成員理解
1、 _foo 不能直接用于’from module import *’
2、__foo解析器用_classname__foo來代替這個名字,以區(qū)別和其他類相同的命名
3、__foo__代表python里特殊方法專用的標識
第三題、__new__和__init__的區(qū)別?
1、__new__是一個靜態(tài)方法,而__init__是一個實例方法
2、__new__方法會返回一個創(chuàng)建的實例,而__init__什么都不返回
3、只有在__new__返回一個cls的實例時,后面的__init__才能被調(diào)用
4、當創(chuàng)建一個新實例時調(diào)用__new__,初始化一個實例時用__init__
第四題、sinstance和issubclass的作用?
1、sinstance(object,classinfo),用于判斷object是否是classinfo的一個實例,或者object是否是classinfo類的子類的一個實例,如果是返回True.
2、issubclass(class,classinfo),用于判斷class是否是classinfo類的子類,如果是返回True.
第五題、以下Python2和Python3的說法正確的有(ABC)
A、Python3使用 print 必須要以小括號包裹打印內(nèi)容
B、Python2中使用ascii編碼,Python3中使用utf-8編碼
C、Python2中是raw_input()函數(shù),Python3中是input()函數(shù)
D、Python2中range(1,10)返回列表,Python3中返回迭代器
D答案、python2中返回是列表,在python3中返回是range類型,并不是迭代器
第六題、如何理解 python的GIL?
首先需要明確的一點是GIL并不是Python的特性,它是在實現(xiàn)Python解析器(CPython)時所引入的一個概念,
為什么會與GIL,為了利用多核,Python開始支持多線程。而解決多線程之間數(shù)據(jù)完整性和狀態(tài)同步的最簡單方法自然就是加鎖。 于是有了GIL這把超級大鎖,而當越來越多的代碼庫開發(fā)者接受了這種設(shè)定后,他們開始大量依賴這種特性(即默認python內(nèi)部對象是thread-safe的,無需在實現(xiàn)時考慮額外的內(nèi)存鎖和同步操作。
GIL 的全程為 Global Interpreter Lock ,意即全局解釋器鎖。
在 Python 語言的主流實現(xiàn) CPython 中,GIL 是一個貨真價實的全局線程鎖,在解釋器解釋執(zhí)行任何 Python 代碼時,都需要先獲得這把鎖才行,在遇到 I/O 操作時會釋放這把鎖。如果是純計算的程序,沒有 I/O 操作,解釋器會每隔 100 次操作就釋放這把鎖,讓別的線程有機會執(zhí)行,這個次數(shù)可以通過sys.setcheckinterval。如果不釋放這把鎖其他的程序會處于等待狀態(tài)。
第七題、簡述with方法打開處理文件幫我我們做了什么?
打開文件在進行讀寫操作時可能會出現(xiàn)一些異常狀況,如果按照常規(guī)的file.open寫法,我們需要try,except,finally,做異常判斷,并且文件最終不管遇到什么情況,都要執(zhí)行finally的file.close()關(guān)閉文件
with方法幫我們實現(xiàn)了finally中file.close()操作 ,如下
第八題、避免轉(zhuǎn)義給字符串加哪個字母表示原始字符串
r,表示需要原始字符串,不轉(zhuǎn)義特殊字符
第九題、Python中斷言方法舉例。
assert()方法,斷言成功,則程序繼續(xù)執(zhí)行;斷言失敗,則程序報錯
第十題、怎么將一個列表類型轉(zhuǎn)換為 迭代器
>>> a = [1,2,3,4,5,6]>>> a = iter(a)>>> next(a)1>>> a = [1,2,3,4,5,6]>>> a = a.__iter__()>>> a.__next__()1
到此,相信大家對“Python面試題及答案有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習!