Python 赋值运算符
生活随笔
收集整理的這篇文章主要介紹了
Python 赋值运算符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
賦值運算符
| 運算符 | 說明 | 舉例 |
| = | 簡單的賦值運算 | c = a + b? 將 a + b 的運算結果賦值為 c |
| += | 加法賦值運算 | c += a 等效于 c = c + a |
| -= | 減法賦值運算 | c -= a 等效于 c = c - a |
| *= | 乘法賦值運算 | c *= a 等效于 c = c * a |
| /= | 除法賦值運算 | c /= a 等效于 c = c / a |
| %= | 取模賦值運算 | c %= a 等效于 c = c % a |
| **= | 冪賦值運算 | c **= a 等效于 c = c ** a |
| //= | 取整除賦值運算 | c //= a 等效于 c = c // a |
| := | 海象運算符 | if (n := len(a)) > 10: ????? print("xxx") 等效于 n = len(a) if n>10: ? ? ? ? ? ?print("xxx") |
海象運算符 是python 3.8新增的,就是把賦值運算符可以寫到邏輯運算里面,作用是降低復雜性并提高可讀性
官方的說法是提升效率
看幾個官方的demo
有新的語法:=可以將值分配給變量作為更大表達式的一部分。由于它長得像海象的眼睛和象牙,因此被親切地稱為“海象操作員”?。
在這個例子中,賦值表達式有助于避免調用?len()兩次:
if (n := len(a)) > 10:print(f"List is too long ({n} elements, expected <= 10)")
在正則表達式匹配期間會出現類似的好處,其中需要兩次匹配對象,一次用于測試是否發生匹配,另一次用于提取子組:
discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):discount = float(mo.group(1)) / 100.0
該運算符也可用于 while 循環,它計算一個值來測試循環終止,然后在循環體中再次需要相同的值:
# Loop over fixed length blocks
while (block := f.read(256)) != '':process(block)
另一個激勵用例出現在列表推導式中,其中表達式主體中還需要在過濾條件中計算出的值:
[clean_name.title() for name in namesif (clean_name := normalize('NFC', name)) in allowed_names]
盡量限制使用 walrus 算子來清理案例,以降低復雜性并提高可讀性
官方demo地址?
總結
以上是生活随笔為你收集整理的Python 赋值运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个我将要离开的个性签名
- 下一篇: C++ 获取内存地址(取值运算符)