? ? ? ? 大家好!在 Python 學習的道路上,掌握一些基礎知識要點至關重要,這些要點常被稱為“Python 八股”。以下是對它們的簡易總結,幫助你快速回顧和鞏固 Python 的核心概念。
? ? ? ?一、數據結構
- 列表(List):有序可變序列,可包含不同類型的元素,如`my_list = [1, 'apple', 3.14]`。
- 元組(Tuple):有序不可變序列,與列表類似但不可修改,如`my_tuple = (1, 'banana', 2.71)`。
- 字典(Dictionary):無序鍵值對集合,鍵不可重復,用于存儲和檢索數據,如`my_dict = {'name': 'John', 'age': 25}`。
- 集合(Set):無序唯一元素集合,用于執行集合操作,如`my_set = {1, 2, 3}`。
? ? ? ? 它們主要區別在于可變性、有序性和是否允許重復元素。
? ? ? 二、數據類型
- 整數(int):表示整數值,占用字節取決于系統位數,如`x = 5`。
- 浮點數(float):表示帶有小數點的數字,通常占用 8 個字節,如`y = 3.14`。
- 字符串(str):表示文本,用單引號或雙引號,占用字節數與長度和編碼相關,如`text = 'Hello, World!'`。
- 布爾值(bool):表示真或假,只有`True`或`False`,通常占用 1 個字節。
- 字節串(bytes):表示二進制數據,字節數等于元素數量,如`b = b'hello'`。
- 字節數組(bytearray):可變字節串,允許修改元素,占用字節數等于元素數量,如`ba = bytearray(b'hello')`。
- NoneType:表示空或不存在的數據,通常用于初始化變量,占用很小固定字節數。
? ? ? 三、控制流語句
- break 和 continue:`break`用于終止循環,跳出循環體;`continue`用于跳過循環體剩余代碼,直接進行下一輪循環。
- return 和 yield:`return`用于從函數返回值并終止函數執行;`yield`用于生成迭代器,函數暫停保存狀態,下次調用繼續執行。
? ? ? 四、拷貝
- 淺拷貝:創建新對象,復制原對象元素引用,只復制對象一層,修改原始嵌套對象會影響淺拷貝,用`copy()`函數或切片操作。
- 深拷貝:創建新對象,遞歸復制原對象所有元素,包括嵌套元素,新對象與原始對象完全獨立,用`copy.deepcopy()`函數,但更耗費資源且可能遇循環引用問題。
? ? ? 五、其他重要知識點
- range 和 xrange:Python 2 中,`range`返回列表,`xrange`返回生成器;Python 3 中,`xrange`被移除,`range`成生成器。
- is 和==:`==`比較對象值是否相等,`is`比較對象身份標識是否相等。
- lambda 函數:匿名函數,用于簡化代碼,常用于函數參數傳遞簡單功能。
- 字符串拆分方法:`split()`、`splitlines()`、`partition()`等。
- 引號區別:單引號和雙引號表示字符串無實質性區別,三引號表示多行字符串,也可作多行注釋。
- Python 傳參:注意參數順序和類型匹配,有位置參數、關鍵字參數、默認參數和可變參數。
- 裝飾器:修改函數或方法行為的高級技術,不改變函數代碼和調用方式添加新功能,應用場景如性能測試、插入日志、權限校驗。
- 作用域:分為局部作用域、全局作用域和嵌套作用域,決定變量或函數在程序中的可訪問區域。
- 解釋型和編譯型語言:解釋型語言運行時逐行解釋源代碼,編譯型語言運行前先將源代碼轉換為機器代碼。
- \_\_init\_\_和\_\_new\_\_:`__init__`初始化對象屬性,`__new__`創建對象并返回實例。
- 常用模塊:`math`、`datetime`、`random`、`os`、`sys`等。
- list 和 numpy.array:`list`是 Python 內置通用序列類型,不支持數學運算;`numpy.array`是 NumPy 提供的數組類型,支持高效數學運算。
- 類中 self:指向對象本身的引用,用于在類中引用對象的屬性和方法,應用包括初始化屬性、訪問屬性和方法、調用其他方法。
- Python 面向對象特征:封裝、繼承、多態,是一門多范式編程語言。
? ? ? ? 以上是 Python 八股文的簡易總結,希望對你有所幫助。在學習過程中,建議多動手實踐,加深對這些知識點的理解和掌握,這樣才能在 Python 編程的世界中更加得心應手。
?