Python 全棧 191 問(附答案)

作為程式設計師,你的電腦里、書架上,一定少不了 Python 的資料和課程。免費的電子書,花錢買的課,實體書籍…

現在想一下,你真正從中學到多少:

  • 正則會用了嗎?
  • __getitem__用過嗎?
  • callable對象怎麼實現的?
  • 還在覺得yield可有可無嗎?
  • 還覺得裝飾器與你沒有毛關係嗎?
  • NumPy 的多維數組reshape 成這個形、那個形,怎麼做到的啊?
  • Pandasisin, set_index, reindex使用過嗎?
  • EDA 搞幾張花哨的圖形就完事了嗎?如何思考、如何分析、思維方法呢?
  • pivot_table, crosstab 是擺設嗎?
  • 離散、連續事件的期望等於求和、求積分,體會到重要性了嗎?
  • 機器學習調調包,越來越心虛,可是演算法那些數學公式看到就頭大,怎麼辦?放棄它?跳過它?改行?
  • 神經網路能擬合任意函數,奧妙在哪裡?這有多神秘?

影響事物發展的機理永遠都在裡面,在表層靠下一點,比別多人多想一點。有沒有能完整回答上面問題,教人以漁的教材。我推薦好朋友例子君寫的:

《Python 全棧 60 天精通之路》

這個專欄 Day1~ Day38 就已經完整解決下面的 191 個問題,Day39~Day61 精彩繼續… 而現在訂閱它只需七折,49 元.

  1. 什麼是動態語言?
  2. Python 常用的兩個命名規則?
  3. 說說 Python 的縮進原則
  4. 說出幾個 Python 關鍵字
  5. 運算符 //,運算符 ** ,運算符 := 完成何操作?
  6. 十六進位的整數前綴?
  7. 列舉幾個容器對象
  8. join 方法使用舉例
  9. 正則表達式 [da-zA-Z]表示什麼含義?
  10. dir() 的含義
  11. 列舉幾個魔法方法
  12. @property 使用舉例
  13. 什麼是可變 (mutable) 容器? 舉三個例子
  14. list 的 append 和 insert 有何區別?
  15. list 的 pop 方法作用?
  16. list 的 copy() 方法功能
  17. Python 中如何實現深拷貝?
  18. 列表 a,切片 a[:-1] 實現什麼功能?,a[::-1] 又實現什麼功能?
  19. 列表 a, 切片 a[1:5:2] 實現什麼功能?
  20. (1) 是元組嗎?(1,) 是什麼類型?
  21. 元組能增刪元素嗎?
  22. 怎麼判斷 list 內有無重複元素?
  23. 列表如何反轉?
  24. 如何找出列表中的所有重複元素?
  25. 如何使用列表創建出斐波那契數列?使用 yield 又怎麼創建 ?
  26. 找出列表中出鏡最多的元素,可能有多個
  27. a = [1,2,3,4,5],如何一行程式碼返回:[(1,2),(2,3),(3,4),(4,5)]
  28. sample 函數實現何功能?
  29. shuffle 函數實現什麼功能?
  30. uniform 函數實現什麼功能?
  31. 說說你知道的創建字典的幾種方法?
  32. 字典視圖是什麼?
  33. 所有對象都能作為字典的鍵嗎?
  34. 集合內的元素可以為任意類型嗎?
  35. 什麼是可哈希類型?舉幾個例子
  36. 求集合的並集、差集、交集、子集的方法?
  37. 怎麼找出字典的最大鍵?
  38. 如何求出字典的最大值?
  39. 如何快速判斷一個字元串中所有字元是否唯一?
  40. 給定 n 個集合,如何使用 max 函數求出包含元素最多的集合?
  41. 找出字典前 n 個最大值對應的鍵
  42. 怎麼一行程式碼合併兩個字典?
  43. 怎麼理解函數原型 max(iterable,*[, key, default]) ?
  44. max 函數的 key 參數怎麼使用,舉例說明
  45. divmod 函數返回值?
  46. id 函數返回什麼類型的對象?
  47. all, any 函數各自實現何功能?
  48. 十進位轉二進位,轉十六進位的函數各叫什麼?
  49. 什麼是函數作用域的 LEGB 規則 ?
  50. range(1,10,3) 返回一個什麼樣的迭代器?
  51. zip 函數能實現功能?
  52. 如何動態地刪除類上的某個屬性?
  53. 又如何判斷類上是否有某個屬性?
  54. super 函數使用舉例
  55. callable 函數實現功能,舉個例子
  56. 字元串I_love_python 使用哪個函數返回 ['I', 'love', 'python'] ?
  57. strip() 方法實現什麼功能?
  58. 正則方法 match 與 search 有何不同?
  59. 如何使用正則表達式,匹配浮點數?
  60. 使用正則表達式,如何匹配出正整數?
  61. re.sub(r'd+', '666',"hello 12345, hello 456321"),返回的字元串
  62. 說說貪心捕獲和非貪心捕獲的區別?
  63. 文件讀寫操作,常見的亂碼問題,怎麼解決?
  64. 文件讀寫模式 r, w, a 分別指什麼?
  65. os.path.split('./data/py/test.py'),返回值是什麼?
  66. 如何優雅地提取文件後綴?
  67. 使用 Python ,如何重命名某個文件?
  68. 關於文件壓縮、加密,在專欄會涉及到。
  69. time 模組,time.local_time() 返回值是什麼?對象的類型是?
  70. 如何格式化時間字元串?'2020-02-22 11:19:19' 對應的時間格式串是 '%Y-%M-%d %H:%m:%S' ,正確嗎?
  71. 列舉 datetime 模組中的四個類?
  72. 使用 datetime 模組,列印出當前時間,顯示格式:yyyy年-mm月-dd日 HH:mm:ss
  73. datetime.strptime('2020-02-22 15:12:33','%Y-%m-%d %H:%M:%S') 實現什麼功能?
  74. 如何計算出還有幾天是女朋友生日?
  75. 如何繪製出年、月的日曆圖?
  76. 如何使用 Python 提供的函數快速判斷是否為閏年?
  77. 如何獲取月的第一天、最後一天、月有幾天?
  78. 介紹 Python 四種常用的開發環境
  79. 說說Python 包安裝常見問題及總結
  80. 說說Web, 爬蟲,打包的常用工具包
  81. 聊聊數據分析、機器學習和深度學習的常用框架
  82. PyInstaller 打包的完整過程
  83. 使用列表生成式,如何得到12 個隨機數
  84. for , if 和列表生成式結合,碰撞出哪些火花?
  85. zip 和列表生成式
  86. 列表生成式實現篩選分組,函數分組等更多實用案例
  87. 關鍵字 is 的功能是什麼?
  88. 對於自定義類型,判斷成員是否位於序列類型中,怎麼做?
  89. 使用 == 判斷對象的相等性,需要區分哪些情況?編碼實現:對象的 user_id 相等,則認為對象相等
  90. yield 理解從哪四個方面入手?
  91. 函數帶有 yield 便是生成器,那麼它還是迭代器嗎?
  92. yield 和 send 碰撞出哪些火花?
  93. yield 使用舉例
  94. 關鍵詞 nonlocal常用於函數嵌套中,實現什麼作用?
  95. global 關鍵字在哪些場景發揮重要作用
  96. Python 函數的五類參數都指哪些?
  97. 如何區分參數是位置參數還是關鍵字參數?
  98. f(*a,**b) 可變位置參數,可變關鍵字參數怎麼傳參?
  99. 參數傳遞常見的以下 3 個異常,怎麼理解?
    • SyntaxError: positional argument follows keyword argument
    • TypeError: f() got an unexpected keyword argument 'a'
    • TypeError: f() takes 0 positional arguments but 1 was given
  100. 函數參數傳遞的 6 個規則都在專欄中做了詳細總結
  101. sorted 函數用法解析
  102. filter 函數用法舉例
  103. map 函數使用技巧
  104. reduce 函數用法及注意事項
  105. 迭代器協議之 iter 和 next 方法
  106. Python 的枚舉對象
  107. 如何感性認識多執行緒?
  108. Python 中如何創建執行緒,以及多執行緒中的資源競爭及暴露出的問題
  109. 多執行緒雞肋和高效的協程機制的相關案例
  110. 列表和迭代器有何區別?
  111. 如何拼接多個迭代器,形成一個更大的可迭代對象?
  112. 通過累積迭代器、漏斗迭代器、克隆迭代器,徹底弄明白迭代器和生成器
  113. 如何遍歷整個目錄與子目錄,抓取 .py 文件
  114. 單機 4 G 記憶體,如何處理 10 G 文件?
  115. lambda 函數的形參和返回值使用案例
  116. 多用 NamedTuple ,讓程式碼更可讀
  117. Counter 計數的功能非常好用
  118. 使用 DefaultDict 自動創建一個被初始化的字典
  119. 使用裝飾器太魔幻,始終不知道怎麼使用,該怎麼淺顯易懂的攻破?
  120. 裝飾器都用在哪裡,可否舉幾個例子?
  121. wraps 裝飾器確保函數被裝飾後名稱不改變
  122. 寫個裝飾器統計出某個異常重複出現到指定次數時,歷經的時長。
  123. Python 的列表與快速實現元素之坑
  124. 刪除列表的元素,O(1) 空間複雜度如何做到?
  125. 函數的參數默認為 [], 會出現哪些奇特的問題?
  126. {} 和 () 創建對象之坑
  127. Python 解包帶來哪些方便?
  128. OOP 編程,魔術方法 getattrsetattr 怎麼使用?注意事項有哪些?
  129. OOP 編程,對象的中括弧訪問機制,怎麼實現的?魔術方法 __getitem__幫助實現
  130. Python 的 API 文檔中,經常看到 array-like 之類的辭彙,這背後是 Python 的鴨子類型,該如何理解?
  131. Python 界的領袖 Tim Peters 說過:「元類就是深度的魔法,99%的用戶應該根本不必為此操心。」 作為程式設計師,相信還是很好奇元類,那麼元類的必知知識都有哪些?
  132. 開放的服務或 API, 被其他系統調用,怎能不掌握 Python 對象的序列化知識呢!
  133. 除了 print, print, 我們還應該掌握 logging 模組,它的設計理念又是怎樣的。換位思考,日誌管理模組設計者會考慮哪些日誌管理問題?
  134. 作為程式設計師,使用什麼工具和方法繪製出框架目錄結構圖?
  135. Flask 模板引擎 jinja2 基本使用介紹
  136. Flask 註冊藍本、路由處理函數、前端 html + css + javascript 必知知識介紹
  137. 實戰 Flask 前後端項目:帶自動提升優先順序的計算器
  138. Python 已經提供了很多豐富的內置包,我們為什麼還要學習 NumPy 呢?NumPy 數值計算:更快,案例解讀
  139. 5 種創建 NumPy 數組的常用方法
  140. arange, linspace, logspace, diag, zeros, ones, np.random 一體化介紹
  141. NumPy 索引和選擇功能強大,不僅支援切片操作,還支援布爾型按條件篩選操作。
  142. 使用 NumPy 創建一個 [3,5] 所有元素為 True 的數組
  143. 數組所有奇數替換為 -1; 提取出數組中所有奇數
  144. 求 2 個 NumPy 數組的交集、差集
  145. NumPy 二維數組交換 2 列,反轉行,如何實現?
  146. NumPy 的靈魂:shape 與 reshape,提供直觀的 6 幅圖理解,其中一幅:
  147. 線性代數中,矩陣的乘法操作在 NumPy 中怎麼實現?
  148. NumPy 實現統計學的描述性變數:求平均值、標準差、方差、最大值、求和、累乘、累和。
  149. 總結 NumPy 常用的方法:flatten, newaxis, repeat, tile, vstack, hstack, concatenate, c_, argmax, argmin
  150. NumPy 使用方便的訣竅:廣播規則,那麼廣播規則的規律如何總結?
  151. 手動實現案例:實踐廣播規則,加深印象
  152. 藉助 NumPy 的 vectorize 實現 Python 的向量化操作例子
  153. 使用 NumPy, 求神經網路的 softmax 層的概率得分值
  154. 使用 NumPy 求兩個特徵的相關係數
  155. 如何找出 NumPy 中的缺失值、以及缺失值的默認填充
  156. Pandas 的 read_csv 30 個常用參數總結,從基本參數、通用解析參數、空值處理、時間處理、分塊讀入、格式和壓縮等 5 個方面總結
  157. Pandas 兩大核心數據結構:Series 和 DataFrame 的增加、刪除、修改和訪問
  158. Pandas 更加強大的索引訪問機制總結
  159. Pandas 的 iterrows, itertuples 性能比較
  160. set_index, reset_index, reindex 使用總結
  161. 數據預覽操作:info 和 describe 使用總結
  162. Pandas 數據 null 值檢查
  163. 空值補全,使用列的平均值、中位數、眾數填充。
  164. Pandas 做特徵工程之 刪除列
  165. Pandas 增加特徵列的方法
  166. Pandas 使用 cut, qcut, ChiMerge 演算法做分項總結
  167. LabelEncoder 編碼和 get_dummies 方法總結
  168. Pandas 的 melt 將寬 DataFrame 透視為長 DataFrame 例子
  169. Pandas 的 pivot 和 pivot_table 透視使用案例
  170. Pandas 的 crosstab 頻次透視函數使用例子
  171. 給定兩個 DataFrame,它們至少存在一個名稱相同的列,如何連接兩個表?使用merge 函數連接兩個 DataFrame,連接方式共有 4 種,分別為:left, right, inner,outer. 如何區分這 4 種連接關係
  172. Kaggle 數據集 EDA 實戰,總結單變數分析的思維模式
  173. Kaggle 數據集 EDA 實戰,雙變數分析的思維模式,使用 pivot_table, groupby, matplotlib, seaborn 繪製 barplot圖, catplot 圖,pairplot 圖
  174. 分類型變數處理技巧總結
  175. 讀取時抽樣 1% 樣本的處理技巧
  176. 與時間序列相關的問題,平時挺常見。如何用 Pandas 快速生成時間序列數據?
  177. Pandas 使用 apply(type) 做類型檢查
  178. Pandas 使用標籤和位置選擇數據的技巧
  179. 一個快速清洗數據的小技巧,在某列上使用 replace 方法和正則,快速完成值的清洗。
  180. 分類中出現次數較少的值,如何統一歸為 others,該怎麼做到?
  181. 某些場景需要重新排序 DataFrame 的列,該如何做到?
  182. 步長為小時的時間序列數據,有沒有小技巧,快速完成下取樣,採集成按天的數據呢?
  183. DataFrame 上快速對某些列展開特徵工程,使用 map 如何做到?
  184. Pandas 結合使用 where 和 isin 搞點事情,加快處理效率
  185. Matplotlib 的幾大繪圖相關的核心對象,對象間的邏輯關係總結
  186. Matplotlib 繪圖分為這 18 步:導入;數據;折線圖;線條顏色;線型;標題;x、y軸 label;文本;註解;顯示中文;雙 data;legend;網格;數據範圍;x 軸日期格式自適應;雙軸;雙圖或多圖排布;嵌入圖
  187. Pyecharts 快速入門第 1例
  188. Pyecharts 萬物皆 options,參數配置方法總結
  189. Pyecharts 中 y 軸靠右參數配置之道
  190. 14 步配置一個完美的柱狀圖
  191. Pyecharts 繪製的 10 類圖總結:儀錶盤;漏斗圖;日曆圖;圖;水球圖;餅圖;極坐標圖;詞雲圖;系列柱狀圖;熱力圖