python海象運算符的三種用法

2020-12-25 騰訊網

Python 版本發展非常快,如今最新的版本已經是 Pyhton 3.9,即便如此,有很多人甚至還停留在 3.6 或者 3.7,連 3.8 還沒用上。

很多 Python 3.8 的特性還沒來得及了解,就已經成為舊知識了,比如今天要說的海象運算符。

海象運算符是在 PEP 572 被提出的,直到 3.8 版本合入發布。

它的英文原名叫 Assignment Expressions,翻譯過來也就是 賦值表達式,不過現在大家更普遍地稱之為海象運算符,就是因為它長得真的太像海象了。

1. 第一個用法:if/else

可能有朋友是第一次接觸這個新特性,所以還是簡單的介紹一下這個海象運算符有什麼用?

在 Golang 中的條件語句可以直接在 if 中運算變量的獲取後直接對這個變量進行判斷,可以讓你少寫一行代碼

若在 Python 3.8 之前,Python 必須得這樣子寫

但有了海象運算符之後,你可以和 Golang 一樣(如果你沒學過 Golang,那這裡要注意,Golang 中的 :=叫短變量聲明,意思是聲明並初始化,它和 Python 中的:=不是一個概念)

2. 第二個用法:while

在不使用 海象運算符之前,使用 while 循環來讀取文件的時候,你也許會這麼寫

但有了海象運算符之後,你可以這樣

使用它替換以往的無限 while 循環寫法更為驚豔

比如,實現一個需要命令行交互輸入密碼並檢驗的代碼,你也許會這樣子寫

有了海象運算符之後,這樣子寫更為舒服

3. 第三個用法:推導式

這個系列的文章,幾乎每篇都能看到推導式的身影,這一篇依舊如此。

在編碼過程中,我很喜歡使用推導式,在簡單的應用場景下,它簡潔且不失高效。

如下這段代碼中,我會使用列表推導式得出所有會員中過於肥胖的人的 bmi 指數

輸出如下

可以看到,會員數只有 3 個,但是get_bmi函數卻執行了 4 次,原因是在判斷時執行了 3 次,而在構造新的列表時又重複執行了一遍。

如果所有會員都是過於肥胖的,那最終將執行 6 次,這種在大量的數據下是比較浪費性能的,因此對於這種結構,我通常會使用傳統的for 循環 + if 判斷。

在有了海象運算符之後,你就可以不用在這種場景下做出妥協。

最終從輸出結果可以看出,只執行了 3 次

這裡僅介紹了列表推導式,但在字典推導式和集合推導式中同樣適用。不再演示。

海象運算符,是一個新奇的特性,有不少人覺得這樣這種特性會破壞代碼的可讀性。確實在一個新鮮事物剛出來時是會這樣,但我相信經過時間的沉澱後,越來越多的人使用它並享受它帶來的便利時,這種爭議也會慢慢消失在歷史的長河中。

相關焦點

  • Python 海象運算符 := 的三種用法
    (也稱為海象運算符)也發布了。假設對於為什麼引入此運算符有合理答案?那麼讓人很自然的想到,它在現實世界中如何有用?我發現了我將要繼續採用海象運算符的三個方面,且每個方面除了能省一行代碼之外都還能帶來其他好處。雖然循環似乎是最常見的使用海象運算符的情況。在此處使用海象運算符的好處是可以在while語句中合併表達式和修飾符。我已經寫過無數次無限循環了,因為我總是忘記在循環末尾寫修改語句。
  • Python 炫技操作:海象運算符的三種用法
    很多 Python 3.8 的特性還沒來得及了解,就已經成為舊知識了,比如今天要說的海象運算符。海象運算符是在 PEP 572 被提出的,直到 3.8 版本合入發布。它的英文原名叫 Assignment Expressions,翻譯過來也就是賦值表達式,不過現在大家更普遍地稱之為海象運算符,就是因為它長得真的太像海象了。1. 第一個用法:if/else可能有朋友是第一次接觸這個新特性,所以還是簡單的介紹一下這個海象運算符有什麼用?
  • ​Python3.8新語法:海象運算符
    正常的賦值語句是a=b,讀作「a等於b」,而海象賦值語句是a:=b,讀作「a walrus /ˈwɔːlrəs/ b」(因為:=看起來像一對眼球和獠牙,類似於海象。注意:此語句還沒有適合的中文讀法,總不能讀作「a海象b」吧)。海象運算符的優勢在於能在不允許賦值的地方(如if語句的條件表達式中)使用賦值變量。
  • Python 運算符,什麼是Python 運算符
    Python語言支持以下類型的運算符:算術運算符比較(關係)賦值運算符、邏輯運算符、位運算符、成員運算符、身份運算符、運算符優先級,接下來讓我們一個個來學習Python的運算符。/usr/bin/python# -*- coding: UTF-8 -*-a = 21b = 10c = 0c = a + b
  • python運算符總結
    正如運算符,正是因為我們在生活中,總是遇到各種各校的運算問題。python算術運算符加減乘除是最基本的數學規則,python中當然不能忽視。我們通過交互式解釋器來演示。在cmd命令行下,輸入python回車,即可打開交互式窗口。
  • Python算術運算符及用法詳解
    算術運算符也即數學運算符,用來對數字進行數學運算,比如加減乘除。下表列出了 Python 支持所有基本算術運算符。
  • Python中的運算符,如何通過算術運算符計算數據,實例操作演示
    什麼是Python的運算符在計算機系統中,變量就是存放數據的一個容器,簡單來說變量是用來存儲數據的,存儲數據最基本的作用就是為了運算,運算就會使用到運算符,那麼python中的運算符有哪些?python運算符Python中支持以下類型的運算符:算術運算符
  • 《第3章 Python 運算符與表達式》3.1.3 比較(關係)運算符!
    《高中信息技術 Python編程》 教學案 《第3章 Python 運算符與表達式》3.1.3 比較(關係)運算符!3.1.3、比較(關係)運算符用於對變量或表達式的結果進行大小,真假的比較,返回結果True 、False,通常用在條件語句中作為判斷的依據。
  • Python 四大基本語法
    = Book(1,'python入門書',100)ml_intro_book = Book(2,'機器學習入門書',200)# 求兩本書的總銷量sales_cnt = python_intro_book + ml_intro_bookprint(sales_cnt) # 300如下是代碼執行結果的演示圖
  • 《第3章 Python 運算符與表達式》3.1.1 算術運算符!
    《高中信息技術 Python編程》 教學案 《第3章 Python 運算符與表達式》3.1.1 算術運算符!3.1.1、算術運算符: 常規: + - * / 編程實例:原始碼:python = 95 # 定義變量,存儲Python的分數english = 92 # 定義變量,存儲English的分數c = 89
  • Python邏輯運算符的短路規則
    如果你了解二進位以及邏輯電路的知識,對邏輯運算符應該不會陌生。
  • python爬蟲10、算術運算符
    圖文教程 上次,我們講解了基本運算符。下面我們開始學習下一個知識點,這個知識點是什麼呢?叫做算術運算符 算術運算符也即數學運算符,用來對數字進行數學運算,比如加減乘除。下表列出了 Python 支持所有算術運算符。
  • 03.大數整除問題,趣說python數字類和算術運算符
    python求解但是用python,我們只要1分鐘不到。%是python裡的一種算術運算符,而顧名思義,算術運算符可以用於數字類實例之間的運算。所以下面將進一步介紹python裡的數字類和算術運算符。算術運算符python裡的算術運算符不多,並且含義和數學上學的幾乎一致,所以只要看下面這張表格就可以了。
  • python語法基礎
    運算符針對數字的數學運算,常見的有以下幾種加 +減 -乘 *乘方 **除  /  整除 //取餘 %用法如下print(3 + 2) # 5print(3 - 2) # 1print(3 * 2) # 6print(3 **
  • Linux中Shell的算數運算符和位運算符用法筆記
    1、算數運算符算數運算符主要是加、減、乘、除、餘、冪等常見的算術運算,以及加等、減等、乘等、除等、餘等複合算術運算。比如: #常規運算符let 1+9 let 20-10let 2*5let 9/3let 10%4
  • Python教程基礎語法、變量基本使用和算術運算符
    確認解釋器所在位置$ which python2. 查看 python 文件大小(只是一個軟連結)$ ls -lh /usr/bin/python3.計算機,顧名思義就是負責進行 數學計算 並且 存儲計算結果 的電子設備目標· 算術運算符的基本使用01.
  • 第四課:Python運算符大全與pycharm常用快捷鍵合集!
    5.Tab 空四格(一個Tab鍵相當於四個空格鍵)6.Shift+Tab(倒退四格)運算符算術運算符賦值運算符比較運算符Tip:python當中』='與』==『號不同,一個等號代表賦值,賦值的意思就類似於我們上節課舉的例子:age(變量名)相當於一個瓶子,33相當於瓶子裡的飲品,瓶子裡面不僅可以裝33,
  • Python中的條件表達式,也稱之為三元運算符,使用方法和技巧
    Python中的條件表達式在其他程式語言中也稱之為三元運算符,在C#和JAVA中都有三元運算符,Python中的條件表達式是基於真(true)假(false)的條件進行判斷的,或者說三元運算符在操作的過程中使用了三個元素如:【條件為真的結果】
  • Python快速入門教程,滿滿都是乾貨
    Python使開發和調試快速,因為在python開發中沒有包含編譯步驟,並且編輯 <-> 測試 <-> 調試循環使用代碼開發效率非常高。這裡多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。
  • Python筆試現場編程:用位運算符實現加法,不允許使用 「+」
    使用位運算符的現場筆試題目我們在很多編碼大賽中也能看到許多高人、大咖們利用二進位數與位運算符展示了各種讓人糾結卻又驚奇的代碼,作為計算機基礎,二進位也成為了很多企業考察招聘人員的重點之一. 代碼今天我們就來看一道要求使用經典的位運算符進行現場編程的筆試題,話不多說,直接看題: