1. 程式人生 > >網路上總結python中的面試題

網路上總結python中的面試題

題目:001| 說說你對zen of python的理解,你有什麼辦法看到它?

Python之禪,Python秉承一種獨特的簡潔和可讀行高的語法,以及高度一致的程式設計模式,符合“大腦思維習慣”,使Python易於學習、理解和記憶。Python同時採用了一條極簡主義的設計理念,瞭解完整的Python哲學理念,可以在任何一個Python互動直譯器中鍵入import this命令,這是Python隱藏的一個彩蛋:描繪了一系列Python設計原則。如今已是Python社群內流行的行話"EIBTI",明瞭勝於晦澀這條規則的簡稱. 在Python的思維方式中,明瞭勝於晦澀,簡潔勝於複雜。

  1. >>> 
    import this    
  2. The Zen of Python, by Tim Peters    
  3. Beautiful is better than ugly.    
  4. Explicit is better than implicit.    
  5. Simple is better than complex.    
  6. Complex is better than complicated.    
  7. Flat is better than nested.    
  8. Sparse is better than dense.    
  9. Readability counts.    
  10. Special cases aren't special enough to break
     the rules.    
  11. Although practicality beats purity.    
  12. Errors should never pass silently.    
  13. Unless explicitly silenced.    
  14. In the face of ambiguity, refuse the temptation to guess.    
  15. There should be one-- and preferably only one --obvious way to do it.    
  16. Although that way may not be obvious at first unless you're Dutch.    
  17. Now is better than never.    
  18. Although never is often better than *right* now.    
  19. If the implementation is hard to explain, it's a bad idea.    
  20. If the implementation is easy to explain, it may be a good idea.    
  21. Namespaces are one honking great idea -- let's do more of those!    

題目:002| 說說你對pythonic的看法,嘗試解決下面的小問題

#簡潔,明瞭,嚴謹,靈活

  1. #交換兩個變數值  
  2. a,b = b,a    
  3. #去掉list中的重複元素  
  4. old_list = [1,1,1,3,4]    
  5. new_list = list(set(old_list))    
  6. #翻轉一個字串  
  7. s = 'abcde'
  8. ss = s[::-1]    
  9. #用兩個元素之間有對應關係的list構造一個dict  
  10. names = ['jianpx''yue']    
  11. ages = [2340]    
  12. m = dict(zip(names,ages))    
  13. #將數量較多的字串相連,如何效率較高,為什麼  
  14. fruits = ['apple''banana']    
  15. result = ''.join(fruits)    
  16. #python字串效率問題之一就是在連線字串的時候使用‘+’號,例如 s = ‘s1’ + ‘s2’ + ‘s3’ + ...+’sN’,總共將N個字串連線起來, 但是使用+號的話,python需要申請N-1次記憶體空間, 然後進行字串拷貝。原因是字串物件PyStringObject在python當中是不可變 物件,所以每當需要合併兩個字串的時候,就要重新申請一個新的記憶體空間 (大小為兩個字串長度之和)來給這個合併之後的新字串,然後進行拷貝。 所以用+號效率非常低。建議在連線字串的時候使用字串本身的方法 join(list),這個方法能提高效率,原因是它只是申請了一次記憶體空間, 因為它可以遍歷list中的元素計算出總共需要申請的記憶體空間的大小,一次申請完。  
題目:003|你除錯python程式碼的方法有哪些?
  1. 具體IDE都有除錯,比如:IDLE, Eclipse+Pydev都可以設定斷點除錯。   
  2. pdb模組也可以做除錯。  
  3. 還有PyChecker和Pylint  
  4. PyChecker是一個python程式碼的靜態分析工具,它可以幫助查詢python程式碼的bug, 會對程式碼的複雜度和格式提出警告    
  5. Pylint   是另外一個工具可以進行coding standard檢查。   
題目:004|  你在github上都fork過哪些python庫,列舉一下你經常使用的,每個庫用一句話描述下其功能
  1. http://rogerdudler.github.io/git-guide/index.zh.html    #關於git簡明指南  
  2. http://www.zhihu.com/question/20070065#關於git的BBS  
  3. http://www.techug.com/githug-for-designer               #關於github的  
題目:005|什麼是GIL?
  1. 什麼是GIL(Global Interpreter Lock)全域性直譯器鎖? 簡單地說就是:  
  2. 每一個interpreter程序,只能同時僅有一個執行緒來執行, 獲得相關的鎖, 存取相關的資源.  
  3. 那麼很容易就會發現,如果一個interpreter程序只能有一個執行緒來執行,   
  4. 多執行緒的併發則成為不可能, 即使這幾個執行緒之間不存在資源的競爭.  
  5. 從理論上講,我們要儘可能地使程式更加並行, 能夠充分利用多核的功能.  
題目:006|  什麼是元類(meta_class)?
  1. 元類就是用來建立類的“東西”  
  2. 詳情操作: http://blog.jobbole.com/21351/  
題目:007|  對比一下dict中items與iteritems?
  1. >>> D = {'a':1,'b':2,'c':3,'d':4}    
  2. >>> D.items()                       #一次性取出所有  
  3. [('a'1), ('c'3), ('b'2), ('d'4)]    
  4. >>> D.iteritems()                   #迭代物件,每次取出一個。用for迴圈遍歷出來;  
  5. <dictionary-itemiterator object at 0x00000000026243B8>    
  6. >>> for i in D.iteritems():    
  7. ...   print i,    
  8. ...    
  9. ('a'1) ('c'3) ('b'2) ('d'4)    
  10. >>> for k,v in D.iteritems():    
  11. ...   print k,    
  12. ...    
  13. a c b d    
  14. 總結:   
  15. 1. 一般iteritems()迭代的辦法比items()要快,特別是資料庫比較大時。  
  16. 2. 在Python3中一般取消前者函式  
題目:008|  是否遇到過python的模組間迴圈引用的問題,如何避免它?
  1. 這是程式碼結構設計的問題,模組依賴和類依賴  
  2. 如果老是覺得碰到迴圈引用,很可能是模組的分界線劃錯地方了。可能是把應該在一起的東西硬拆開了,可能是某些職責放錯地方了,可能是應該抽象的東西沒抽象  
  3. 總之微觀程式碼規範可能並不能幫到太多,重要的是更巨集觀的劃分模組的經驗技巧,推薦uml,腦圖,白板等等圖形化的工具先梳理清楚整個系統的總體結構和職責分工  
  4. 採取辦法,從設計模式上來規避這個問題,比如:  
  5. 1. 使用 “__all__” 白名單開放介面  
  6. 2. 儘量避免 import
題目:009|  有用過with statement嗎?它的好處是什麼?
  1. >>> with open('text.txt') as myfile:    
  2. ...   whileTrue:    
  3. ...     line = myfile.readline()    
  4. ...     ifnot line:    
  5. ...       break
  6. ...     print line,    
  7. # with語句使用所謂的上下文管理器對程式碼塊進行包裝,允許上下文管理器實現一些設定和清理操作。  
  8. # 例如:檔案可以作為上下文管理器使用,它們可以關閉自身作為清理的一部分。  
  9. # NOTE:在PYTHON2.5中,需要使用from __future__ import with_statement進行with語句的匯入  
題目:010|用Python生成指定長度的斐波那契數列
  1. def fibs(x):  
  2.     result = [01]  
  3.     for index in range(x-2):  
  4.         result.append(result[-2]+result[-1])  
  5.     return result  
  6. if __name__=='__main__':  
  7.     num = input('Enter one number: ')  
  8.     print fibs(num)  
題目:011|  Python裡如何生產隨機數
  1. >>> import random  
  2. >>> random.random()  
  3. 0.29495314937268713
  4. >>> random.randint(1,11)  
  5. 8
  6. >>> random.choice(range(11))  
  7. 3
題目:012|  Python裡如何反序的迭代一個序列
  1. 如果是一個list, 最快的解決方案是:  
  2. list.reverse()  
  3. try:  
  4. 相關推薦

    網路總結python試題

    【題目:001】| 說說你對zen of python的理解,你有什麼辦法看到它? Python之禪,Python秉承一種獨特的簡潔和可讀行高的語法,以及高度一致的程式設計模式,符合“大腦思維習慣”,使Python易於學習、理解和記憶。Python同時採用了一條

    python試題積累

    沒有 方法 程序 數據結構 python 面試題 clas pan print 1. 去除列表li = [1, 3, 5, 3, 5, 6, 34, 66, 89, 89]中重復的元素 答:由於本題並沒有要求用哪一種解決方式,比如算法,所以我們可以用任意方法來做,   考慮

    網路搜集的試題

    原文:http://blog.csdn.net/he_haiqiang/article/details/7914983   假設需要將N個任務分配給N個工人同時去完成,每個人都能承擔這N個任務,但費用不   同.下面的程式用回溯法計算總費用最小的一種工作分配方

    Python 經典試題: a,b兩個序列,大小都為n,序列元素的值任意整形數,無序, 要求: 通過交換a,b的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小 使

    方法: 用隨機數來求出結果 解題思想: 用隨機數隨機出來所有的程式碼排列可能性,在定義次數的時候 定義的次數越大得到的結果越準確. 最終程式碼: import random #有很多方法是把兩個列表合成一個後排序按照一大一小的分配生成兩個列表 #但是這樣是在資

    python字串試題:找出一個字串第一個字母和最後一個字元是第一次重複,中間沒有重複且最長的子串

    1.給出任意一個字串,列印一個最長子串字串及其長度,如果有相同長度的子字串,都要一起打印出來,該子字串滿足以下條件, 第一個字母和最後一個字元是第一次重複 這個子字串的中間字母沒有重複 這個子字串是滿足條件裡面的最長的 如: adsasadmasd 中滿足條件的是dmasd   im

    深入解答11道Python基礎試題

    傳參 default .get python基礎 說明 默認值 get 根據 none 1. Python的參數傳遞是值傳遞還是引 舉例說明Python函數參數傳遞的幾種形式,並說明函數傳參是值傳遞還是引用傳遞 一、位置參數 調用函數時根據函數定義的參數位置來傳遞參數。

    Python 開發試題

    方框 port equal 類別 透明度 classes 外鍵 glob dex Python部分 將一個字符串逆序,不能使用反轉函數 求從10到100中能被3或5整除的數的和 What is Python? What are the benefits of usi

    python基礎試題

    spa ever print pan spl rev tom pos () 字符串翻轉輸出: a="I am tom" b=a.split(" ") print(b) b.reverse() print(b) [‘I‘, ‘am‘, ‘tom‘][‘tom‘, ‘am‘,

    常見的Python爬蟲試題,叫面試官唱征服

    python 爬蟲 web開發 系統入門 快速詳細 是否了解線程的同步和異步?線程同步:多個線程同時訪問同一資源,等待資源訪問結束,浪費時間,效率低 線程異步:在訪問資源時在空閑等待時同時訪問其他資源,實現多線程機制是否了解網絡的同步和異步?同步:提交請求->等待服務器處理->

    python+selenium試題

    error print pro 自動 ofo comment config hot 理解 selenium中如何判斷元素是否存在? selenium中沒有提供原生的方法判斷元素是否存在,一般我們可以通過定位元素+異常捕獲的方式判斷。 # 判斷元素是否存在 try: dr

    python經典試題

    經典面試題 brush pri nbsp 圖片 print self img true 1、方法和函數的區別 from types import MethodType,FunctionType class A: def func(self):pass a = A

    金九銀十,史最強 Java 試題整理。

    dir db2 計算 2.0 dad map rec 比較 ef6 以下會重新整理所有 Java 系列面試題答案、及各大互聯網公司的面試經驗,會從以下幾個方面匯總,本文會長期更新。 Java 面試篇 史上最全 Java 面試題,帶全部答案 史上最全 69 道 Spring

    python框架試題聯絡

    1、對 MVC,MVT 解讀的理解? M:Model,模型,和資料庫進行互動 V:View,檢視,負責產生 Html 頁面 C:Controller,控制器,接收請求,進行處理,與 M 和 V 進行互動,返回應答。 1、 使用者點選注按鈕,將要註冊的資訊傳送給網站伺服器。

    年薪50萬的阿里巴巴Python工程師試題曝光

    作為Python工程師,進入大公司是開啟職業新起點的關鍵,今天小編特別分享了其在阿里巴巴面試Python工程師的題目和經歷,希望對廣大Python工程師的求職者有一個幫助。學習資料也可以加下Python扣扣裙:3零4零5零799自己下載學習下 首先我們來看下阿里巴巴對Python工程師招聘

    30道python真實試題(蒐集到的,看看其實都是基礎)

    1、一行程式碼實現1-100之間和 In [1]: sum(range(0,101)) Out[1]: 5050 2、如何在一個函式內部修改全域性變數 利用global修改全域性變數 In [2]: a = 10 In [3]: def fn(): ...: global a

    [雪峰磁針石部落格]python經典試題:列表和元組有什麼異同?

    列表和元組是Python中最常用的兩種資料結構,字典是第三種。 相同點: 都是序列 都可以儲存任何資料型別 可以通過索引訪問 語法差異 使用方括號[]建立列表,而使用括號()建立元組。 請看以下示例: >>> l = ["https://

    總結Python面向物件的特殊方法

    當你從萌新小白到有點程式設計概念的時候或許就會有疑問,為什麼print()就可以打印出東西,為什麼生成器就可以next()進行迭代,這些都是因為類本身實現了一些特殊方法,我們來總結一下: 1.如果把一個類的例項變成str,就需要實現特殊方法__str__( ): str:用於顯示給使用者 r

    30道python真實試題(附答案)

      最近收集整理了100道python真實面試筆試題,並自己做了一些,希望能幫助大家,順利早日找到工作,限於篇幅問題,本文附有30道面試題計算答案。                學習Python中有

    2018年5-7月面試經歷總結:阿里試題

    第一輪:電話初面 第二輪:技術面談【技術職位儘量避免多談管理上的工作】 第三輪:高管複試 第四輪:HR最後確認 一面:首先確認對阿里的意向度(如果異地更會考慮對工作地點(杭州)的意向度!阿里很看重這個);其次面試官一般會針對您所做過的專案來做具體技術的交流,會比較

    Python基礎試題。很基礎也特別容易被面試到。

    1.HTTP和Session的區別 http是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。基於TCP/IP通訊協議來傳送資料,主要特點:【1、簡單快速,請求方法:get,head,post,因為協議簡單,使的HTTP伺服器的程式規模小,通訊速度快。2、靈活,HTTP允許傳輸任意型別的資料