日韩 亚洲一区二_久久vs国产综合色大全_国产精品福利在线_欧美在线一级A片免费观看欧美在线_女同性毛片60分钟

您現(xiàn)在所在的位置:首頁(yè) >學(xué)員就業(yè) > 就業(yè)寶典 > Python面試應(yīng)急5分鐘!

Python面試應(yīng)急5分鐘!

來(lái)源:奇酷教育 發(fā)表於:

不論你是初入江湖,還是江湖老手,只要你想給自己一個(gè)定位那就少不了面試!

  不論你是初入江湖,還是江湖老手,只要你想給自己一個(gè)定位那就少不了面試!面試的重要性相信大家都知道把,這就是我們常說(shuō)的“第一印象”,給大家說(shuō)一下我的面試心得把,面試前的緊張是要的,因為這能讓你充分準(zhǔn)備。面試時(shí)的緊張是絕對(duì)要避開(kāi)的,因為這可能導(dǎo )致你不能充分展現(xiàn)自己,說(shuō)不定塑普都出來(lái)了。
 
  分享個(gè)笑話(huà)舒緩一下:公司程式設(shè)計(jì)師要跳槽,老闆不答應(yīng),後來(lái),他拔了伺服器的硬碟後跑了;公司保安要跳槽,老闆不答應(yīng),後來(lái),他帶著公司的大門(mén)鑰匙跑了;公司保潔阿姨要跳槽,老闆不答應(yīng),後來(lái),她在老闆抽屜裡放一隻大蟑螂跑了;公司人事要跳槽,老闆不答應(yīng),後來(lái),她給自己辦了離職手續(xù)跑了。下面會(huì)有45個(gè)問(wèn)答題大家可以借鑑一下,不扯了,如果你正準(zhǔn)備面試就看下面把。
 
  1)什麼是Python?使用Python有什麼好處?
 
  Python是一種程式語言,包含對(duì)象,模塊,線(xiàn )程,異常和自動(dòng)內(nèi)存管理。蟒蛇的好處在於它簡(jiǎn)單易用,可移植,可擴展,內(nèi)置數(shù)據(jù)結(jié)構(gòu ),並且它是一個(gè)開(kāi)源的。
 
  2)什麼是PEP 8?
 
  PEP 8是一個(gè)編碼約定,一組推薦,關(guān)於如何編寫(xiě)Python代碼更具可讀性。
 
  3)什麼是酸洗和去除?
 
  Pickle模塊接受任何Python對(duì)象並將其轉(zhuǎn)換(huàn)為字符串表示形式,並使用dump函數(shù)將其轉(zhuǎn)儲(chǔ)到文件中,此過(guò)程稱(chēng)為pickling。從存儲(chǔ)的字符串表示中檢索原始Python對(duì)象的過(guò)程稱(chēng)為unpickling。
 
  4)如何解釋Python?
 
  Python語言是一種解釋語言。Python程序直接從原始碼運(yùn)行。它將程式設(shè)計(jì)師編寫(xiě)的原始碼轉(zhuǎn)換(huàn)為中間語言,再次轉(zhuǎn)換(huàn)為必須執(zhí)行的機(jī)器語言。
 
  5)如何在Python中管理內(nèi)存?
 
  Python內(nèi)存由Python私有堆空間管理。所有Python對(duì)象和數(shù)據(jù)結(jié)構(gòu )都位於私有堆中。程式設(shè)計(jì)師無(wú)權(quán)訪(fǎng)問(wèn)此私有堆,解釋器負(fù)責(zé)處理此私有堆。
 
  Python對(duì)象的Python堆空間分配由Python內(nèi)存管理器完成。核心API提供了一些程式設(shè)計(jì)師編寫(xiě)代碼的工具。
 
  Python還有一個(gè)內(nèi)置的垃圾收集器,它可以回收所有未使用的內(nèi)存並釋放內(nèi)存並使其可用於堆空間。
 
  6)有哪些工具可以幫助查找錯誤或執(zhí)行靜態(tài)分析?
 
  PyChecker是一個(gè)靜態(tài)分析工具,可以檢測(cè)Python原始碼中的錯誤,並警告錯誤的風(fēng)格和複雜性。Pylint是另一種驗(yàn)證模塊是否符合編碼標(biāo)準(zhǔn)的工具。
 
  7)什麼是Python裝飾器?
 
  Python裝飾器是我們在Python語法中進(jìn)行的一項(xiàng)特定更改,可以輕鬆地更改函數(shù)。
 
  8)list和tuple有什麼區(qū)別?
 
  列表和元組之間的區(qū)別在於列表是可變的而元組不是。元組可以被散列為例如作為字典的關(guān)鍵。
 
  9)參數(shù)如何通過(guò)值或引用傳遞?
 
  Python中的所有內(nèi)容都是一個(gè)對(duì)象,所有變量都包含對(duì)象的引用。參考值根據(jù)功能; 因此,您無(wú)法更改引用的值。但是,如果對(duì)象是可變的,則可以更改它們。
 
  10)Dict和List理解是什麼?
 
  它們是語法結(jié)構(gòu ),可以根據(jù)現(xiàn)有的iterable輕鬆創(chuàng)建Dictionary或List。
 
  11)python提供的內(nèi)置類(lèi)型是什麼?
 
  1)整型——int——數(shù)字
 
  python有5種數(shù)字類(lèi)型,最常見(jiàn)的就是整型int。例如:1234、-1234
 
  2)布爾型——bool——用符號(hào)==表示
 
  布爾型是一種比較特殊的python數(shù)字類(lèi)型,它只有True和False兩(liǎng)種值,它主要用來(lái)比較和判斷,所得結(jié)果叫做布爾值。例如:3==3 給出True,3==5給出False
 
  3)字符串——str——用' '或" "表示
 
  例如:'www.iplaypython.com'或者"hello"
 
  4)列表——list——用[ ]符號(hào)表示
 
  例如:[1,2,3,4]
 
  5)元組——tuple——用( )符號(hào)表示
 
  例如:('d',300)
 
  6)字典——dict——用{ }符號(hào)表示
 
  例如:{'name':'coco','country':'china'}
 
  Python基本數(shù)據(jù)類(lèi)型中哪些可變,哪些是不可變
 
  python可變數(shù)據(jù)類(lèi)型:列表list[ ]、字典dict{ }
 
  python不可變數(shù)據(jù)類(lèi)型:整型int、字符串str' '、元組tuple()
 
  12)Python中的命名空間是什麼?
 
  在Python中,引入的每個(gè)名稱(chēng)都有一個(gè)存在的地方,並且可以被掛鈎。這稱(chēng)為命名空間。它就像一個(gè)框,其中變量名稱(chēng)映射到放置的對(duì)象。每當(dāng)搜索到變量時(shí),將搜索此框以獲取相應(yīng)的對(duì)象。
 
  13)Python中的lambda是什麼?
 
  它是一個(gè)單獨(dú)的表達(dá)式匿名函數(shù),通常用作內(nèi)聯(lián)函數(shù)。
 
  14)為什麼python中的lambda表單沒有語句?
 
  python中的lambda表單沒有語句,因為它用於創(chuàng)建新的函數(shù)對(duì)象,然後在運(yùn)行時(shí)返回它們。
 
  15)什麼是Python傳遞?
 
  通過(guò)意味著,無(wú)操作的Python語句,或者換(huàn)句話(huà)說(shuō),它是複合語句中的佔位符,其中應(yīng)該留有空白,不必在那裡寫(xiě)入任何內(nèi)容。
 
  16)在Python中什麼是迭代器?
 
  在Python中,迭代器用於迭代一組元素,如列表之類(lèi)的容器。
 
  17)什麼是Python中的單元測(cè)試?
 
  Python中的單元測(cè)試框架稱(chēng)為unittest。它支持共享設(shè)置,自動(dòng)化測(cè)試,測(cè)試關(guān)閉代碼,將測(cè)試聚合到集合等。
 
  18)在Python中切片是什麼?
 
  從序列類(lèi)型(如列表,元組,字符串等)中選擇一系列項(xiàng)目的機(jī)制稱(chēng)為切片。
 
  19)Python中的生成器是什麼?
 
  實(shí)現(xiàn)迭代器的方法稱(chēng)為生成器。這是一個(gè)正常的函數(shù),除了它在函數(shù)中產(chǎn)生表達(dá)式。
 
  20)Python中的docstring是什麼?
 
  Python文檔字符串稱(chēng)為docstring,它是一種記錄Python函數(shù),模塊和類(lèi)的方法。
 
  21)如何在Python中複製對(duì)象?
 
  要在Python中複製對(duì)象,可以嘗試copy.copy()或copy.deepcopy()來(lái)處理一般情況。您無(wú)法複製所有對(duì)象,但大多數(shù)對(duì)象都是如此。
 
  22)Python中的負(fù)面索引是什麼?
 
  Python序列可以是正數(shù)和負(fù)數(shù)的索引。對(duì)於正索引,0是第一個(gè)索引,1是第二個(gè)索引,依此類(lèi)推。對(duì)於負(fù)索引,( - 1)是最後一個(gè)索引,( - 2)是倒數(shù)第二個(gè)索引,依此類(lèi)推。
 
  23)如何將數(shù)字轉(zhuǎn)換(huàn)為字符串?
 
  要將數(shù)字轉(zhuǎn)換(huàn)為字符串,請使用內(nèi)置函數(shù)str()。如果需要八進(jìn)位或十六進(jìn)位表示,請使用內(nèi)置函數(shù)oct()或hex()。
 
  24)Xrange和範圍有什麼區(qū)別?
 
  Xrange返回xrange對(duì)象,而range返回列表,並使用相同的內(nèi)存,無(wú)論範圍大小是多少。
 
  25)Python中的模塊和包是什麼?
 
  在Python中,模塊是構(gòu )造程序的方式。每個(gè)Python程序文件都是一個(gè)模塊,它導(dǎo )入其他模塊,如對(duì)象和屬性。
 
  Python程序的文件夾是一個(gè)模塊包。包可以包含模塊或子文件夾。
 
  26)提到Python中局部變量和全局變量的規(guī)則是什麼?
 
  局部變量:如果在函數(shù)體內(nèi)的任何位置為變量分配了一個(gè)新值,則假定它是本地的。
 
  全局變量:僅在函數(shù)內(nèi)引用的變量是隱式全局變量。
 
  27)如何跨模塊共享全局變量?
 
  要在單個(gè)程序中跨模塊共享全局變量,請創(chuàng)建一個(gè)特殊模塊。在應(yīng)用程式的所有模塊中導(dǎo )入配置模塊。該模塊將作為跨模塊的全局變量提供。
 
  28)解釋如何在Unix上創(chuàng)建Python腳本?
 
  要在Unix上使Python腳本可執(zhí)行,您需要做兩(liǎng)件事,
 
  腳本文件的模式必須是可執(zhí)行的
 
  第一行必須以#開(kāi)頭(#!/ usr / local / bin / python)
 
  29)解釋如何在Python中刪除文件?
 
  使用命令os.remove(filename)或os.unlink(filename)
 
  30)解釋如何在Python中生成隨機(jī)數(shù)?
 
  要在Python中生成隨機(jī)數(shù),您需要將命令導(dǎo )入為
 
  隨機(jī)導(dǎo )入
 
  random.random()
 
  這將返回[0,1]範圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)
 
  31)解釋如何從C訪(fǎng)問(wèn)用Python編寫(xiě)的模塊?
 
  您可以通過(guò)以下方法訪(fǎng)問(wèn)C中用Python編寫(xiě)的模塊,
 
  Module =PyImport_ImportModule(“”);
 
  32)提到在Python中使用//運(yùn)算符?
 
  它是一個(gè)Floor Divisionoperator,用於分割兩(liǎng)個(gè)操作數(shù),結(jié)果為商,只顯示小數(shù)點(diǎn)前的數(shù)字。例如,10 // 5 = 2和10.0 // 5.0 = 2.0。
 
  33)提到使用Python的五大好處?
 
  Python包含一個(gè)巨大的標(biāo)準(zhǔn)庫(kù),適用於大多數(shù)Internet平臺(tái),如電子郵件,HTML等。
 
  Python不需要顯式內(nèi)存管理,因為解釋器本身會(huì)將內(nèi)存分配給新變量並自動(dòng)釋放它們
 
  由於使用方括號(hào),因此易於閱讀
 
  易於學(xué)習(xí)的初學(xué)者
 
  擁有內(nèi)置數(shù)據(jù)類(lèi)型可以節(jié)省編程時(shí)間和工作量,從而聲明變量
 
  34)提到在Python中使用split函數(shù)?
 
  在Python中使用split函數(shù)是使用定義的分隔符將字符串分解為更短的字符串。它給出了字符串中存在的所有單詞的列表。
 
  35)解釋什麼是Flask及其好處?
 
  Flask是基於“Werkzeug,Jinja 2和良好意圖”BSD許可的Python的Web微框架。Werkzeug和jingja是它的兩(liǎng)個(gè)依賴。
 
  Flask是微框架的一部分。這意味著它對(duì)外部庫(kù)幾乎沒有依賴性。它使框架變得輕盈,同時(shí)幾乎沒有更新的依賴性和更少的安全性錯誤。
 
  36)提到Django,Pyramid和Flask之間有什麼區(qū)別?
 
  Flask是一個(gè)“微框架”,主要用於具有更簡(jiǎn)單要求的小型應(yīng)用程式。在燒瓶中,您必須使用外部庫(kù)。Flask已準(zhǔn)備好使用。
 
  金字塔是為更大的應(yīng)用程式構(gòu )建的。它提供了靈活性,並允許開(kāi)發(fā)人員為他們的項(xiàng)目使用正確的工具。開(kāi)發(fā)人員可以選擇資料庫(kù),URL結(jié)構(gòu ),模板樣式等。金字塔很重要。
 
  像Pyramid一樣,Django也可以用於更大的應(yīng)用程式。它包括一個(gè)ORM。
 
  37)提到什麼是Flask-WTF以及它們的特點(diǎn)是什麼?
 
  Flask-WTF提供與WTForms的簡(jiǎn)單集成。功能包括Flask WTF
 
  與wtforms集成
 
  使用csrf令牌保護(hù)表單
 
  全球csrf保護(hù)
 
  國(guó)際化整合
 
  Recaptcha支持
 
  文件上傳適用於Flask Uploads
 
  38)解釋Flask腳本工作的常用方法是什麼?
 
  燒瓶腳本工作的常用方法是
 
  它應(yīng)該是您的應(yīng)用程式的導(dǎo )入路徑
 
  或Python文件的路徑
 
  39)解釋如何在Flask中訪(fǎng)問(wèn)會(huì)話(huà)?
 
  會(huì)話(huà)基本上允許您記住從一個(gè)請求到另一個(gè)請求的信息。在燒瓶中,它使用籤名cookie,以便用戶(hù)可以查看會(huì)話(huà)內(nèi)容並進(jìn)行修改。如果只有密鑰Flask.secret_key,則用戶(hù)可以修改會(huì)話(huà)。
 
  40)Flask是一個(gè)MVC模型,如果是,給出一個(gè)示例顯示您的應(yīng)用程式的MVC模式?
 
  基本上,Flask是一個(gè)簡(jiǎn)約框架,其行為與MVC框架相同。所以MVC非常適合Flask,MVC的模式我們將考慮以下示例
 
  41)解釋Python Flask中的資料庫(kù)連接?
 
  Flask支持資料庫(kù)驅動(dòng)的應(yīng)用程式(RDBS)。這樣的系統(tǒng)需要創(chuàng)建一個(gè)模式,這需要將shema.sql文件傳遞給sqlite3命令。因此,您需要安裝sqlite3命令才能在Flask中創(chuàng)建或啟動(dòng)資料庫(kù)。
 
  Flask允許以三種方式請求資料庫(kù)
 
  before_request():在請求之前調(diào)用它們並且不傳遞任何參數(shù)
 
  after_request():在請求後調(diào)用它們並傳遞將發(fā)送到客戶(hù)端的響應(yīng)
 
  teardown_request():在引發(fā)異常時(shí)調(diào)用它們,並且不保證響應(yīng)。在構(gòu )建響應(yīng)之後調(diào)用它們。不允許它們修改請求,並忽略它們的值。
 
  42)你有多個(gè)運(yùn)行Python的Memcache伺服器,其中一個(gè)memcacher伺服器出現(xiàn)故障,它有你的數(shù)據(jù),是否會(huì)嘗試從那個(gè)故障伺服器獲取關(guān)鍵數(shù)據(jù)?
 
  故障伺服器中的數(shù)據(jù)不會(huì)被刪除,但有一個(gè)自動(dòng)故障的規(guī)定,您可以為多個(gè)節(jié)點(diǎn)配置。可以在任何類(lèi)型的套接字或Memcached伺服器級(jí)別錯誤期間觸發(fā)故障轉(zhuǎn)移,而不是在正常的客戶(hù)端錯誤(如添加現(xiàn)有密鑰等)期間觸發(fā)。
 
  43)解釋如何最小化Python開(kāi)發(fā)中的Memcached伺服器中斷?
 
  當(dāng)一個(gè)實(shí)例發(fā)生故障時(shí),其中一些實(shí)例出現(xiàn)故障,當(dāng)客戶(hù)端發(fā)出請求時(shí)重新加載丟失的數(shù)據(jù)時(shí),這會(huì)給資料庫(kù)伺服器帶來(lái)更大的負(fù)載。為避免這種情況,如果您的代碼已編寫(xiě)為最小化緩存標(biāo)記,那麼它將產(chǎn)生最小的影響
 
  另一種方法是使用丟失的機(jī)器IP位址在新機(jī)器上調(diào)出Memcached實(shí)例
 
  代碼是最小化伺服器中斷的另一個(gè)選項(xiàng),因為它使您可以自由地以最少的工作更改Memcached伺服器列表
 
  設(shè)置超時(shí)值是某些Memcached客戶(hù)端為Memcached伺服器中斷實(shí)現(xiàn)的另一個(gè)選項(xiàng)。當(dāng)Memcached伺服器出現(xiàn)故障時(shí),客戶(hù)端將繼續(xù)嘗試發(fā)送請求,直到達(dá)到超時(shí)限制
 
  44)解釋什麼是Dogpile效應(yīng)?你怎麼能防止這種影響?
 
  當(dāng)緩存過(guò)期時(shí),Dogpile效應(yīng)被稱(chēng)為事件,並且網(wǎng)站被客戶(hù)端同時(shí)發(fā)出的多個(gè)請求所擊中。使用信號(hào)量鎖可以防止這種影響。在此系統(tǒng)中,當(dāng)值到期時(shí),第一個(gè)進(jìn)程獲取鎖並開(kāi)始生成新值。
 
  45)解釋如何在Python項(xiàng)目中使用Memcached?
 
  Memcached常見(jiàn)的誤用是將其用作數(shù)據(jù)存儲(chǔ),而不是緩存
 
  切勿使用Memcached作為運(yùn)行應(yīng)用程式所需信息的唯一來(lái)源。數(shù)據(jù)也應(yīng)始終通過(guò)其他來(lái)源提供
 
  Memcached只是一個(gè)鍵或值存儲(chǔ),不能對(duì)數(shù)據(jù)執(zhí)行查詢或迭代內(nèi)容以提取信息
 
  Memcached在加密或身份驗(yàn)證方面不提供任何形式的安全性