以下是Python基礎語法知識的30條要點整理,涵蓋數據類型、函數、控制結構等核心內容,結合最新資料歸納總結:
基礎30問
一、函數特性
-
函數多返回值
支持用逗號分隔返回多個值,自動打包為元組,接收時可解包到多個變量def func(): return 1, "a" x, y = func()
-
匿名函數lambda
單行臨時函數,適用于簡單邏輯,如lambda x: x*2
-
參數傳遞方式
包括位置參數、關鍵字參數、默認參數、可變長參數(*args收集為元組,**kwargs收集為字典) -
全局變量修改
函數內修改全局變量需用global
聲明 -
函數文檔字符串
使用三重引號定義,可通過__doc__
屬性訪問,IDE懸停顯示說明
二、數據類型與操作
-
動態類型語言
變量無需聲明類型,賦值時自動推斷 -
字符串格式化方法
f-string(f"{name} is {age}"
)、format()函數及%占位符 -
列表推導式
快速生成列表,如[x**2 for x in range(10) if x%2==0]
-
字典推導式
{k:v for k,v in zip(keys, values)}
-
集合去重與運算
支持交集(&)、并集(|)、差集(-)、對稱差集(^) -
可變與不可變類型
不可變:數字、字符串、元組;可變:列表、字典、集合
三、控制結構
-
連續條件判斷
if 10 <= x <= 20
等效于x >=10 and x <=20
-
三元表達式
簡化條件賦值:result = a if condition else b
-
循環中的else
for/while循環正常結束(非break中斷)時執行else塊 -
enumerate遍歷索引
同時獲取元素和下標:for idx, val in enumerate(lst)
-
zip并行迭代
多列表同步遍歷:for a, b in zip(list1, list2)
四、高級特性
-
上下文管理器
用with open('file') as f
自動處理資源釋放 -
生成器函數
使用yield
暫停執行并返回值,支持惰性計算 -
裝飾器語法
通過@decorator
修飾函數,擴展功能而不修改原代碼 -
類型注解
可選類型提示:def func(name: str) -> int:
五、模塊與異常
-
模塊導入方式
import module
、from module import func
、import module as alias
-
異常處理結構
try-except-else-finally
四段式處理錯誤 -
自定義異常
繼承Exception類創建特定錯誤類型
六、代碼規范
-
縮進規則
必須用4空格縮進定義代碼塊(Tab自動轉空格) -
注釋寫法
單行注釋用#
,多行用三引號,文檔注釋遵循PEP257 -
空值處理
None
表示空對象,pd.NA
用于Pandas缺失值 -
代碼分多行
反斜杠\
或括號內自然換行(如列表、元組)
七、實用技巧
-
列表與元組的區別
列表可變(增刪元素),元組不可變但查詢更快 -
字典鍵的限制
鍵必須是不可變類型(如字符串、數字、元組) -
海龜繪圖庫
圖形化編程入門:import turtle
繪制幾何圖形
擴展建議
以上知識點覆蓋Python 3.10+核心語法,建議結合具體場景練習(如用集合去重、用生成器處理大數據)。
進階30問
以下是Python進階語法知識的30條擴展要點(與前一版無重復),結合Python 3.12特性及工程實踐整理:
一、高級面向對象
-
描述符協議
通過__get__
/__set__
方法實現屬性托管,常用于ORM框架class Temperature:def __get__(self, obj, objtype): return obj._temp * 1.8 + 32
-
元類編程
使用__metaclass__
控制類創建過程,實現接口驗證或自動注冊 -
類裝飾器
用裝飾器修改類結構,如自動添加__repr__
方法 -
動態屬性管理
__getattr__
處理未定義屬性訪問,__setattr__
攔截賦值操作 -
多重繼承的MRO
方法解析順序遵循C3算法,可用ClassName.__mro__
查看繼承鏈
二、內存與性能優化
-
__slots__內存優化
限制類屬性數量,減少內存占用(適用于百萬級實例場景)class Point:__slots__ = ('x', 'y')
-
生成器表達式
惰性計算大數據集:(x*2 for x in range(10**6))
-
內存視圖memoryview
零拷貝處理二進制數據,提升numpy數組處理效率 -
弱引用weakref
創建不阻止垃圾回收的對象引用,適用于緩存場景 -
協程中的yield from
委托子生成器執行,簡化嵌套協程代碼結構
三、并發與異步
-
GIL機制影響
Global Interpreter Lock導致CPU密集型多線程無效,需用多進程規避 -
async/await語法
協程函數聲明與等待,結合asyncio實現高并發IO操作async def fetch():await asyncio.sleep(1)
-
線程池與ProcessPoolExecutor
concurrent.futures模塊實現簡易并行任務調度 -
協程狀態管理
通過inspect.getcoroutinestate()
檢測協程運行狀態 -
異步上下文管理器
用async with
管理異步資源(如數據庫連接池)
四、元編程與反射
-
函數簽名檢查
inspect模塊解析參數:sig = inspect.signature(func)
-
動態代碼執行
exec()
執行字符串代碼,compile()
預編譯代碼對象 -
猴子補丁技術
運行時修改類/模塊的實現,用于緊急修復或測試mock -
抽象基類(ABC)
abc模塊定義接口規范,強制子類實現特定方法 -
類型提示泛型
使用TypeVar
和Generic
創建泛型類/函數T = TypeVar('T') class