python, interview,

110 Python interview questions & solutions

Tony Tony Follow May 29, 2019 · 4 mins read
 110 Python interview questions & solutions
Share this

這是給Python開發者準備的110道筆試面試題,建議每道題都要認真刷一遍,有些題可以嘗試用多種方式來解答,甚至做延伸學習,

  1. 一行代碼實現1—100之和
     sum(range(1,101))
     #5050
    
  2. 如何在一個函數內部修改全局變量
     num = 0
     def foo():
        #declare variable as global
         global num
        #now can revise the value
         num =100
         return
    
  3. 列出5個python標準庫
     os, time, collection, util, random
    
  4. 字典如何刪除鍵和合併兩個字典 總共有四種方法
     dct1={'a':1,'b':2,'c':3}
     dct2={'d':4,'e':5}
     #delete
     #del dct1['a'] it would raise a KeyError if 'a' is not in dct1
     dct1.pop('a',None)
     #merge
     dct1.update(dct2)
    
  5. 談下python的GIL

  6. python實現列表去重的方法
     set=set()
     res=[]
     for element in lst:
         if element in dct:
             continue
         else:
             res.append(element)
             set.add(element)
     return res
    
  7. fun(*args,kwargs)中的*args,kwargs什麽意思?
    *args為參數,**kwargs為關鍵字參數。

  8. python2和python3的range(100)的區別
    in python2 range() would produce a list object.
     >>>A=range(0,5)
     [0,1,2,3,4]
    

    but python3 no longer produce list, it produce a range object which allows iterations.

     >>>A=range(0,5)
     range(0.5)
    
  9. 一句話解釋什麽樣的語言能夠用裝飾器? 函式可以用來傳遞的語言,可以使用裝飾器。

  10. python內建數據類型有哪些
    int
    float
    string
    dict
    set
    list
        
    
  11. 簡述面向對象中__new__和__init__區別 ```python new 呼叫constructor建立新的實例 init 附與實例初始值

```

  1. 簡述with方法打開處理文件幫我我們做了什麽?

  2. 列表[1,2,3,4,5],請使用map()函數輸出[1,4,9,16,25],並使用列表推導式提取出大於10的數,最終輸出[16,25]
    [x for x in map(lambda x:x**2,[1,2,3,4,5]) if x >10]
    
  3. python中生成隨機整數. 隨機小數. 0—1之間小數方法

  4. 避免轉義給字符串加哪個字母表示原始字符串? 在string前加r,ex r’string’

中國 ,用正則匹配出標簽里面的內容(“中國”),其中class的類名是不確定的

  1. python中斷言方法舉例

  2. 數據表student有id,name,score,city字段,其中name中的名字可有重複,需要消除重複行,請寫sql語句

  3. 10個Linux常用命令

  4. python2和python3區別?列舉5個

  5. 列出python中可變數據類型和不可變數據類型,並簡述原理

  6. s = “ajldjlajfdljfddd”,去重並從小到大排序輸出”adfjl”

  7. 用lambda函數實現兩個數相乘

  8. 字典根據鍵從小到大排序dict={“name”:”zs”,”age”:18,”city”:”深圳”,”tel”:”1362626627”}

  9. 利用collections庫的Counter方法統計字符串每個單詞出現的次數”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”

  10. 字符串a = “not 404 found 張三 99 深圳”,每個詞中間是空格,用正則過濾掉英文和數字,最終輸出”張三 深圳”

  11. filter方法求出列表所有奇數並構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  12. 列表推導式求列表所有奇數並構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  13. 正則re.complie作用

  14. a=(1,)b=(1),c=(“1”) 分別是什麽類型的數據?

  15. 兩個列表[1,5,7,9]和[2,2,6,8]合並為[1,2,2,3,6,7,8,9]

  16. 用python刪除文件和用linux命令刪除文件方法

  17. log日誌中,我們需要用時間戳記錄error,warning等的發生時間,請用datetime模塊打印當前時間戳 “2018-04-01 11:38:54”

  18. 數據庫優化查詢方法

  19. 請列出你會的任意一種統計圖(條形圖. 折線圖等)繪制的開源庫,第三方也行

  20. 寫一段自定義異常代碼

  21. 正則表達式匹配中,(.)和(.?)匹配區別?

  22. 簡述Django的orm

  23. [[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]

  24. x=”abc”,y=”def”,z=[“d”,”e”,”f”],分別求出x.join(y)和x.join(z)返回的結果

  25. 舉例說明異常模塊中try except else finally的相關意義

  26. python中交換兩個數值

  27. 舉例說明zip()函數用法

  28. a=”張明 98分”,用re.sub,將98替換為100

  29. 寫5條常用sql語句

  30. a=”hello”和b=”你好”編碼成bytes類型

  31. [1,2,3]+[4,5,6]的結果是多少?

  32. 提高python運行效率的方法

  33. 簡述mysql和redis區別

  34. 遇到bug如何處理

    1. 正則匹配,匹配日期2018-03-20 url=’https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462‘
  35. list=[2,3,5,4,9,6],從小到大排序,不許用sort,輸出[2,3,4,5,6,9]

  36. 寫一個單列模式

  37. 保留兩位小數 題目本身只有a=”%.03f”%1.3335,讓計算a的結果,為了擴充保留小數的思路,提供round方法(數值,保留位數)

  38. 求三個方法打印結果

  39. 列出常見的狀態碼和意義

  40. 分別從前端. 後端. 數據庫闡述web項目的性能優化

  41. 使用pop和del刪除字典中的”name”字段,dic={“name”:”zs”,”age”:18}

  42. 列出常見MYSQL數據存儲引擎

  43. 計算代碼運行結果,zip函數歷史文章已經說了,得出[(“a”,1),(“b”,2),(“c”,3),(“d”,4),(“e”,5)]

  44. 簡述同源策略

  45. 簡述cookie和session的區別

  46. 簡述多線程. 多進程

  47. 簡述any()和all()方法

  48. IOError. AttributeError. ImportError. IndentationError. IndexError. KeyError. SyntaxError. NameError分別代表什麽異常

  49. python中copy和deepcopy區別

  50. 列出幾種魔法方法並簡要介紹用途

  51. C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令行啟動程序並傳參,print(sys.argv)會輸出什麽數據?

  52. 請將[i for i in range(3)]改成生成器

  53. a = “ hehheh “,去除收尾空格

  54. 舉例sort和sorted對列表排序,list=[0,-1,3,-10,5,9]

  55. 對list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函數從小到大排序

  56. 使用lambda函數對list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],輸出結果為 [0,2,4,8,8,9,-2,-4,-4,-5,-20],正數從小到大,負數從大到小

  57. 列表嵌套字典的排序,分別根據年齡和姓名排序

  58. 列表嵌套元組,分別按字母和數字排序

  59. 列表嵌套列表排序,年齡數字相同怎麽辦?

  60. 根據鍵對字典排序(方法一,zip函數)

  61. 根據鍵對字典排序(方法二,不用zip)

  62. 列表推導式. 字典推導式. 生成器

  63. 最後出一道檢驗題目,根據字符串長度排序,看排序是否靈活運用

  64. 舉例說明SQL註入和解決辦法

  65. s=”info:xiaoZhang 33 shandong”,用正則切分字符串輸出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]

  66. 正則匹配以163.com結尾的郵箱

  67. 遞歸求和

  68. python字典和json字符串相互轉化方法

  69. MyISAM 與 InnoDB 區別:

  70. 統計字符串中某字符出現次數

  71. 字符串轉化大小寫

  72. 用兩種方法去空格

  73. 正則匹配不是以4和7結尾的手機號

  74. 簡述python引用計數機制

  75. int(“1.4”),int(1.4)輸出結果?

  76. 列舉3條以上PEP8編碼規範

  77. 正則表達式匹配第一個URL

  78. 正則匹配中文

  79. 簡述樂觀鎖和悲觀鎖

  80. r、 r+、 rb、 rb+文件打開模式區別

  81. Linux命令重定向 > 和 »

  82. 正則表達式匹配出

  83. python傳參數是傳值還是傳址?

  84. 求兩個列表的交集. 差集. 並集

  85. 生成0-100的隨機數

  86. lambda匿名函數好處

  87. 常見的網絡傳輸協議

  88. 單引號. 雙引號. 三引號用法

  89. python垃圾回收機制

  90. HTTP請求中get和post區別

  91. python中讀取Excel文件的方法

  92. 簡述多線程. 多進程

  93. python正則中search和match
Join Newsletter
Get the latest news right in your inbox. We never spam!
Tony
Written by Tony Follow
Hi, I am Tony, the author of Learning Journey blog. I hope you like what I sharing!