315道Python常見面試題

来源:https://www.cnblogs.com/xxpythonxx/archive/2019/08/16/11366293.html
-Advertisement-
Play Games

第一部分,Python基礎篇 1. 為什麼學習Python? 2. 通過什麼途徑學習的Python? 3. Python和Java、PHP、C、C 、C++等其他語言的對比? 4. 簡述解釋型和編譯型編程語言? 5. Python解釋器種類以及特點? 6. 位和位元組的關係? 7. b、B、KB、MB ...


第一部分,Python基礎篇

  1. 為什麼學習Python?

    1. 通過什麼途徑學習的Python?

    2. Python和Java、PHP、C、C#、C++等其他語言的對比?

    3. 簡述解釋型和編譯型編程語言?

    4. Python解釋器種類以及特點?

    5. 位和位元組的關係?

    6. b、B、KB、MB、GB 的關係?

    7. 請至少列舉5個 PEP8 規範(越多越好)。

    8. 通過代碼實現如下轉換:

      二進位轉換成十進位:v = “0b1111011”
      十進位轉換成二進位:v = 18
      八進位轉換成十進位:v = “011”
      十進位轉換成八進位:v = 30
      十六進位轉換成十進位:v = “0x12”
      十進位轉換成十六進位:v = 87

    9. 請編寫一個函數實現將IP地址轉換成一個整數。

      如 10.3.9.12 轉換規則為:

      ​        10            00001010
      
               3            00000011
      
      ​         9            00001001
      
              12            00001100

    再將以上二進位拼接起來計算十進位結果:00001010 00000011 00001001 00001100 = ?

    1. python遞歸的最大層數?

    2. 求結果:
            v1 = 1 or 3
            v2 = 1 and 3
            v3 = 0 and 2 and 1
            v4 = 0 and 2 or 1
            v5 = 0 and 2 or 1 or 4
            v6 = 0 or Flase and 1
    1. ascii、unicode、utf-8、gbk 區別?

    2. 位元組碼和機器碼的區別?

    3. 三元運算規則以及應用場景?

    4. 列舉 Python2和Python3的區別?

    5. 用一行代碼實現數值交換:
      a = 1
      b = 2

    6. Python3和Python2中 int 和 long的區別?

    7. xrange和range的區別?

    8. 文件操作時:xreadlines和readlines的區別?

    9. 列舉布爾值為False的常見值?

    10. 字元串、列表、元組、字典每個常用的5個方法?

    11. lambda表達式格式以及應用場景?

    12. pass的作用?

    13. *arg和**kwarg作用

    14. is和==的區別

    15. 簡述Python的深淺拷貝以及應用場景?

    16. Python垃圾回收機制?

    17. Python的可變類型和不可變類型?

    18. 求結果:
           v = dict.fromkeys(['k1','k2'],[]) 
           v[‘k1’].append(666)
           print(v)
           v[‘k1’] = 777
           print(v)
    1. 求結果:
      img

    2. 列舉常見的內置函數?

    3. filter、map、reduce的作用?

    4. 一行代碼實現9*9乘法表

    5. 如何安裝第三方模塊?以及用過哪些第三方模塊?

    6. 至少列舉8個常用模塊都有那些?

    7. re的match和search區別?

    8. 什麼是正則的貪婪匹配?

    9. 求結果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )

    10. 求結果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2

    11. def func(a,b=[]) 這種寫法有什麼坑?

    12. 如何實現 “1,2,3” 變成 [‘1’,’2’,’3’] ?

    13. 如何實現[‘1’,’2’,’3’]變成[1,2,3] ?

    14. 比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的區別?

    15. 如何用一行代碼生成[1,4,9,16,25,36,49,64,81,100] ?

    16. 一行代碼實現刪除列表中重覆的值 ?

    17. 如何在函數中設置一個全局變數 ?

    18. logging模塊的作用?以及應用場景?

    19. 請用代碼簡答實現stack 。

    20. 常用字元串格式化哪幾種?

    21. 簡述 生成器、迭代器、可迭代對象 以及應用場景?

    22. 用Python實現一個二分查找的函數。

    23. 談談你對閉包的理解?

    24. os和sys模塊的作用?

    25. 如何生成一個隨機數?

    26. 如何使用python刪除一個文件?

    27. 談談你對面向對象的理解?

    28. Python面向對象中的繼承有什麼特點?

    29. 面向對象深度優先和廣度優先是什麼?

    30. 面向對象中super的作用?

    31. 是否使用過functools中的函數?其作用是什麼?

    32. 列舉面向對象中帶爽下劃線的特殊方法,如:newinit

    33. 如何判斷是函數還是方法?

    34. 靜態方法和類方法區別?

    35. 列舉面向對象中的特殊成員以及應用場景

    36. 1、2、3、4、5 能組成多少個互不相同且無重覆的三位數

    37. 什麼是反射?以及應用場景?

    38. metaclass作用?以及應用場景?

    39. 用儘量多的方法實現單例模式。

    40. 裝飾器的寫法以及應用場景。

    41. 異常處理寫法以及如何主動跑出異常(應用場景)

    42. 什麼是面向對象的mro

    43. isinstance作用以及應用場景?

    44. 寫代碼並實現:
        Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would 
        have exactly one solution, and you may not use the same element twice.
        Example:
                  Given nums = [2, 7, 11, 15], target = 9,
                   Because nums[0] + nums[1] = 2 + 7 = 9,
                   return [0, 1]
    1. json序列化時,可以處理的數據類型有哪些?如何定製支持datetime類型?

    2. json序列化時,預設遇到中文會轉換成unicode,如果想要保留中文怎麼辦?

    3. 什麼是斷言?應用場景?

    4. 有用過with statement嗎?它的好處是什麼?

    5. 使用代碼實現查看列舉目錄下的所有文件。

    6. 簡述 yield和yield from關鍵字。

第二部分,網路編程和併發

    1. 簡述 OSI 七層協議。
    2. 什麼是C/S和B/S架構?
    3. 簡述 三次握手、四次揮手的流程。
    4. 什麼是arp協議?
    5. TCP和UDP的區別?
    6. 什麼是區域網和廣域網?
    7. 為何基於tcp協議的通信比基於udp協議的通信更可靠?
    8. 什麼是socket?簡述基於tcp協議的套接字通信流程。
    9. 什麼是粘包? socket 中造成粘包的原因是什麼? 哪些情況會發生粘包現象?
    10. IO多路復用的作用?
    11. 什麼是防火牆以及作用?
    12. select、poll、epoll 模型的區別?
    13. 簡述 進程、線程、協程的區別 以及應用場景?
    14. GIL鎖是什麼鬼?
    15. Python中如何使用線程池和進程池?
    16. threading.local的作用?
    17. 進程之間如何進行通信?
    18. 什麼是併發和並行?
    19. 進程鎖和線程鎖的作用?
    20. 解釋什麼是非同步非阻塞?
    21. 路由器和交換機的區別?
    22. 什麼是功能變數名稱解析?
    23. 如何修改本地hosts文件?
    24. 生產者消費者模型應用場景及優勢?
    25. 什麼是cdn?
    26. LVS是什麼及作用?
    27. Nginx是什麼及作用?
    28. keepalived是什麼及作用?
    29. haproxy是什麼以及作用?
    30. 什麼是負載均衡?
    31. 什麼是rpc及應用場景?
    32. 簡述 asynio模塊的作用和應用場景。
    33. 簡述 gevent模塊的作用和應用場景。
    34. twisted框架的使用和應用?

第三部分、資料庫和緩存

  1. 列舉常見的關係型資料庫和非關係型都有那些?
  2. MySQL常見資料庫引擎及比較?
  3. 簡述數據三大範式?
  4. 什麼是事務?MySQL如何支持事務?
  5. 簡述資料庫設計中一對多和多對多的應用場景?
  6. 如何基於資料庫實現商城商品計數器?
  7. 常見SQL(必備)

  8. 簡述觸發器、函數、視圖、存儲過程?
  9. MySQL索引種類
  10. 索引在什麼情況下遵循最左首碼的規則?
  11. 主鍵和外鍵的區別?
  12. MySQL常見的函數?
  13. 列舉 創建索引但是無法命中索引的8種情況。
  14. 如何開啟慢日誌查詢?
  15. 資料庫導入導出命令(結構+數據)?
  16. 資料庫優化方案?
  17. char和varchar的區別?
  18. 簡述MySQL的執行計劃?
  19. 在對name做了唯一索引前提下,簡述以下區別:
    select * from tb where name = ‘Oldboy-Wupeiqi’
    select * from tb where name = ‘Oldboy-Wupeiqi’ limit 1
  20. 1000w條數據,使用limit offset 分頁時,為什麼越往後翻越慢?如何解決?
  21. 什麼是索引合併?
  22. 什麼是覆蓋索引?
  23. 簡述資料庫讀寫分離?
  24. 簡述資料庫分庫分表?(水平、垂直)
  25. redis和memcached比較?
  26. redis中資料庫預設是多少個db 及作用?
  27. python操作redis的模塊?
  28. 如果redis中的某個列表中的數據量非常大,如果實現迴圈顯示每一個值?
  29. redis如何實現主從複製?以及數據同步機制?
  30. redis中的sentinel的作用?
  31. 如何實現redis集群?
  32. redis中預設有多少個哈希槽?
  33. 簡述redis的有哪幾種持久化策略及比較?
  34. 列舉redis支持的過期策略。
  35. MySQL 里有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中都是熱點數據?
  36. 寫代碼,基於redis的列表實現 先進先出、後進先出隊列、優先順序隊列。
  37. 如何基於redis實現消息隊列?
  38. 如何基於redis實現發佈和訂閱?以及發佈訂閱和消息隊列的區別?
  39. 什麼是codis及作用?
  40. 什麼是twemproxy及作用?
  41. 寫代碼實現redis事務操作。
  42. redis中的watch的命令的作用?
  43. 基於redis如何實現商城商品數量計數器?
  44. 簡述redis分散式鎖和redlock的實現機制。
  45. 什麼是一致性哈希?Python中是否有相應模塊?
  46. 如何高效的找到redis中所有以oldboy開頭的key?

第四部分、前端、框架和其他

    1. 談談你對http協議的認識。

    2. 談談你對websocket協議的認識。

    3. 什麼是magic string ?

    4. 如何創建響應式佈局?

    5. 你曾經使用過哪些前端框架?

    6. 什麼是ajax請求?並使用jQuery和XMLHttpRequest對象實現一個ajax請求。

    7. 如何在前端實現輪訓?

    8. 如何在前端實現長輪訓?

    9. vuex的作用?

    10. vue中的路由的攔截器的作用?

    11. axios的作用?

    12. 列舉vue的常見指令。

    13. 簡述jsonp及實現原理?

    14. 是什麼cors ?

    15. 列舉Http請求中常見的請求方式?

    16. 列舉Http請求中的狀態碼?

    17. 列舉Http請求中常見的請求頭?

    18. 看圖寫結果:
      img

    19. 看圖寫結果:
      img

    20. 看圖寫結果:
      img

    21. 看圖寫結果:
      img

    22. 看圖寫結果:
      img

    23. 看圖寫結果:
      img

    24. django、flask、tornado框架的比較?

    25. 什麼是wsgi?

    26. django請求的生命周期?

    27. 列舉django的內置組件?

    28. 列舉django中間件的5個方法?以及django中間件的應用場景?

    29. 簡述什麼是FBV和CBV?

    30. django的request對象是在什麼時候創建的?

    31. 如何給CBV的程式添加裝飾器?

    32. 列舉django orm 中所有的方法(QuerySet對象的所有方法)

    33. only和defer的區別?

    34. select_related和prefetch_related的區別?

    35. filter和exclude的區別?

    36. 列舉django orm中三種能寫sql語句的方法。

    37. django orm 中如何設置讀寫分離?

    38. F和Q的作用?

    39. values和values_list的區別?

    40. 如何使用django orm批量創建數據?

    41. django的Form和ModeForm的作用?

    42. django的Form組件中,如果欄位中包含choices參數,請使用兩種方式實現數據源實時更新。

    43. django的Model中的ForeignKey欄位中的on_delete參數有什麼作用?

    44. django中csrf的實現機制?

    45. django如何實現websocket?

    46. 基於django使用ajax發送post請求時,都可以使用哪種方法攜帶csrf token?

    47. django中如何實現orm表中添加數據時創建一條日誌記錄。

    48. django緩存如何設置?

    49. django的緩存能使用redis嗎?如果可以的話,如何配置?

    50. django路由系統中name的作用?

    51. django的模板中filter和simple_tag的區別?

    52. django-debug-toolbar的作用?

    53. django中如何實現單元測試?

    54. 解釋orm中 db first 和 code first的含義?

    55. django中如何根據資料庫表生成model中的類?

    56. 使用orm和原生sql的優缺點?

    57. 簡述MVC和MTV

    58. django的contenttype組件的作用?

    59. 談談你對restfull 規範的認識?

    60. 介面的冪等性是什麼意思?

    61. 什麼是RPC?

    62. Http和Https的區別?

    63. 為什麼要使用django rest framework框架?

    64. django rest framework框架中都有那些組件?

    65. django rest framework框架中的視圖都可以繼承哪些類?

    66. 簡述 django rest framework框架的認證流程。

    67. django rest framework如何實現的用戶訪問頻率控制?

    68. Flask框架的優勢?

    69. Flask框架依賴組件?

    70. Flask藍圖的作用?

    71. 列舉使用過的Flask第三方組件?

    72. 簡述Flask上下文管理流程?

    73. Flask中的g的作用?

    74. Flask中上下文管理主要涉及到了那些相關的類?並描述類主要作用?

    75. 為什麼要Flask把Local對象中的的值stack 維護成一個列表?

    76. Flask中多app應用是怎麼完成?

    77. 在Flask中實現WebSocket需要什麼組件?

    78. wtforms組件的作用?

    79. Flask框架預設session處理機制?

    80. 解釋Flask框架中的Local對象和threading.local對象的區別?

    81. Flask中 blinker 是什麼?

    82. SQLAlchemy中的 session和scoped_session 的區別?

    83. SQLAlchemy如何執行原生SQL?

    84. ORM的實現原理?

    85. DBUtils模塊的作用?

    86. 以下SQLAlchemy的欄位是否正確?如果不正確請更正:

from datetime import datetime
from sqlalchemy.ext.declarative
import declarative_base
from sqlalchemy import Column, Integer, String, DateTime

Base = declarative_base()
class UserInfo(Base):   
    __tablename__ = 'userinfo'   
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(64), unique=True)
    ctime = Column(DateTime, default=datetime.now())
  1. SQLAchemy中如何為表設置引擎和字元編碼?

  2. SQLAchemy中如何設置聯合唯一索引?

  3. 簡述Tornado框架的特點。

  4. 簡述Tornado框架中Future對象的作用?

  5. Tornado框架中如何編寫WebSocket程式?

  6. Tornado中靜態文件是如何處理的?如: <link href="{{static_url("commons.css")}}" rel="stylesheet" />

  7. Tornado操作MySQL使用的模塊?

  8. Tornado操作redis使用的模塊?

  9. 簡述Tornado框架的適用場景?

  10. git常見命令作用:

  11. 簡述以下git中stash命令作用以及相關其他命令。

  12. git 中 merge 和 rebase命令 的區別。

  13. 公司如何基於git做的協同開發?

  14. 如何基於git實現代碼review?

  15. git如何實現v1.0 、v2.0 等版本的管理?

  16. 什麼是gitlab?

  17. github和gitlab的區別?

  18. 如何為github上牛逼的開源項目貢獻代碼?

  19. git中 .gitignore文件的作用?

  20. 什麼是敏捷開發?

  21. 簡述 jenkins 工具的作用?

  22. 公司如何實現代碼發佈?

  23. 簡述 RabbitMQ、Kafka、ZeroMQ的區別?

  24. RabbitMQ如何在消費者獲取任務後未處理完前就掛掉時,保證數據不丟失?

  25. RabbitMQ如何對消息做持久化?

  26. RabbitMQ如何控制消息被消費的順序?

  27. 以下RabbitMQ的exchange type分別代表什麼意思?如:fanout、direct、topic。

  28. 簡述 celery 是什麼以及應用場景?

  29. 簡述celery運行機制。

  30. celery如何實現定時任務?

  31. 簡述 celery多任務結構目錄?

  32. celery中裝飾器 @app.task 和 @shared_task的區別?

  33. 簡述 requests模塊的作用及基本使用?

  34. 簡述 beautifulsoup模塊的作用及基本使用?

  35. 簡述 seleninu模塊的作用及基本使用?

  36. scrapy框架中各組件的工作流程?

  37. 在scrapy框架中如何設置代理(兩種方法)?

  38. scrapy框架中如何實現大文件的下載?

  39. scrapy中如何實現限速?

  40. scrapy中如何實現暫定爬蟲?

  41. scrapy中如何進行自定製命令?

  42. scrapy中如何實現的記錄爬蟲的深度?

  43. scrapy中的pipelines工作原理?

  44. scrapy的pipelines如何丟棄一個item對象?

  45. 簡述scrapy中爬蟲中間件和下載中間件的作用?

  46. scrapy-redis組件的作用?

  47. scrapy-redis組件中如何實現的任務的去重?

  48. scrapy-redis的調度器如何實現任務的深度優先和廣度優先?

  49. 簡述 vitualenv 及應用場景?

  50. 簡述 pipreqs 及應用場景?

  51. 在Python中使用過什麼代碼檢查工具?

  52. 簡述 saltstack、ansible、fabric、puppet工具的作用?

  53. B Tree和B+ Tree的區別?

  54. 請列舉常見排序並通過代碼實現任意三種。

  55. 請列舉常見查找並通過代碼實現任意三種。

  56. 請列舉你熟悉的設計模式?

  57. 有沒有刷過leetcode?

  58. 列舉熟悉的的Linux命令。

  59. 公司線上伺服器是什麼系統?

  60. 解釋 PV、UV 的含義?

  61. 解釋 QPS的含義?

  62. uwsgi和wsgi的區別?

  63. supervisor的作用?

  64. 什麼是反向代理?

  65. 簡述SSH的整個過程。

  66. 有問題都去那些找解決方案?

  67. 是否有關註什麼技術類的公眾號?

  68. 最近在研究什麼新技術?

  69. 是否瞭解過領域驅動模型?


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 3.1.如何實現可迭代對象和迭代器對象 結果 3.2如何使用生成器函數實現可迭代對象 3.3.如何進行反向迭代以及如何實現反向迭代 反向迭代 要想實現反向迭代必須實現__reversed__方法 ...
  • 最近再學習ajax,上課老師讓我們實現一個類似百度首頁實現搜索框的功能,剛開始做的時候沒有一點頭緒,查閱大量網上的資源後,發現之前的與我們現在的有些區別,所以在此寫出來,希望能對大家有所幫助. 下麵先展示下效果圖:(ps:圖片中的文字是參考的,不具有任何的攻擊意義) 項目的目錄結構: 一:首先是lo ...
  • 寫這篇文章,就是希望讀者把本文提出的這幾個問題,經過深刻的準備後,一般來說,能囊括大部分的消息隊列的知識點。 ...
  • 1.動態導入模塊 2.包裝標準類型 3.雙下劃線開頭的attr方法: 4.反射 5.多態 6.封裝示範一 ...
  • 上某東的時候,突然給我彈了一個充氣娃娃的廣告,於是就點進去就看了一下評論,全是神評論啊。所以我就想著把大神們的評論們扒拉下來仔細瞅瞅,於是這篇文章就誕生了😄,純屬學習啊,不要想入非非啊,還有,不喜勿噴! 按照軟體設計流程來: 需求分析-功能描述-技術文檔-詳細設計-編碼-測試-交付-驗收-後期維護 ...
  • 11.4 JavaScript 11.41 變數 1、聲明變數的語法 2、變數名命名規範 3、ES6中let ES6之前js沒有塊級作用域,ES6新增了let命令,用於聲明變數(聲明的變數屬於塊級作用域),流程式控制制語句的{}就是塊級作用域。其用法類似於var,但是所聲明的變數只在let命令所在的代碼 ...
  • # 多態是指一類事物有多種行態, # 例如:動物有多種形態:人,狗,貓 # 他們有一些共同的特征:吃,喝,拉,撒 # 多態性是指在不考慮實例類型的情況下使用實例 # 對同一事物不同的類,對象有不同的響應, # 例如:放假了,有的同學回家,有的去旅游,有的去兼職 # 有的在敲代碼(就是我啦) # 列表... ...
  • # 繼承是一種創建新類的方式,新建的類可以繼承一個,或者多個父類, # 父類又可以稱為基類或者超類,新建的類可以稱為派生類,子類 class ParentClass1: # 定義父類 1 pass class ParentClass2: # 定義父類 2 pass class SubClass1(P... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...