Python中那些實用的其它語句
妳知道嗎?
Python中那些實用的其它語句
Python中的其它語句
除了if、while、for等超級語句外, Python中還有那
麽壹些不太出名,但也非常實用的語句。今天咱們就挑選
其中的三類介紹壹下, 分別是pass(什麽都不做) 、del
(刪除) 、exec和eval執行語句。
1.pass語句
pass語句是壹個空(null) 操作, 既然什麽都不做, 那為什
麽要寫pass語句呢?因為長城不是壹天建成的, 寫代碼壹
樣。當我們在編寫壹個程序時,執行語句部分思路還有完
成, 這時就可以使用pass語句來占位, 也可以當做是壹個標
記,等後續再把這部分代碼補充完整。
示例:還沒想好當輸入的名稱和想要的不壹致時該如何處
理, 這個時候就可以先用pass語句做個占位, 當輸入名字為
“小明”時,代碼什麽都不做。
2.del語句
del語句只能刪除變量, 而不能刪除數據。事實上, 在
Python中, 根本就沒有辦法刪除值, 而且也不需要這樣
做, 因為對於不再使用的值, Python的垃圾收集機制會
立即將其刪除。
示例,雖然x和y指向同壹個列表,但刪除x對y沒有任何
影響, 因為Python只刪除名稱x, 而沒有刪除列表本身
(值)。
3.使用exec和eval執行字符串及計算其結果
正有時候, 我們可能想動態地編寫Python代碼, 允許用
戶輸入,並將其作為語句進行執行或作為表達式進行計
算。這個時候就需要使用函數exec和eval。
exec函數
函數exec將字符串作為代碼執行, 返回值為None。
函數定義:exec(object[, globals[, locals] ] )
參數說明:object:必選參數, 表示需要被指定的
Python代碼。它必須是字符串或code對象。如果
object是壹個字符串, 該字符串會先被解析為壹組
Python語句, 然後再執行(除非發生語法錯誤) 。如果
object是壹個code對象, 那麽它只是被簡單地執行。
globals:可選參數, 表示全局命名空間(存放全局變
量),如果被提供,則必須是壹個字典對象。
locals:可選參數, 表示當前局部命名空間(存放局部
變量),如果被提供,可以是任何映射對象。如果該參
數被忽略, 那麽它將會取與globals相同的值。
3.使用exec和eval執行字符串及計算其結果
雖然globals和locals是可選參數, 但強烈建議使用。因
為像當用戶輸入“exec("z=x+y") ”時, 會把代碼中的z
變量修改掉。
4.eval函數
函數eval計算用字符串表示的Python表達式的值, 與exec什
麽都不返回不同, 函數eval返回結果。
函數定義:eval(expression, globals=None, locals=None)
參數說明:expression:必選參數, 可以是字符串, 也可以
是任意壹個code對象實例。如果它是壹個字符串, 它會被當
做壹個(使用globals和locals參數作為全局和本地命名空間
的) Python表達式進行分析和解釋。
globals:可選參數, 表示全局命名空間(存放全局變
量),如果被提供,則必須是壹個字典對象。
locals:可選參數, 表示當前局部命名空間(存放局部
變量),如果被提供,可以是任何映射對象。如果該參
數被忽略, 那麽它將會取與globals相同的值。
5.函數eval和exec的區別
函數eval只能計算單個表達式的值, 而exec函數可以動態運
行代碼段;
函數eval會返回計算的結果值, 而exec返回值永遠為None。