chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

?Python 3.8:海象運(yùn)算符的三種用法

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 11:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Python 版本發(fā)展非??欤缃褡钚碌陌姹疽呀?jīng)是 Pyhton 3.9,即便如此,有很多人甚至還停留在 3.6 或者 3.7,連 3.8 還沒用上。

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

海象運(yùn)算符是在 PEP 572 被提出的,直到 3.8 版本合入發(fā)布。

它的英文原名叫 Assignment Expressions,翻譯過來也就是 賦值表達(dá)式,不過現(xiàn)在大家更普遍地稱之為海象運(yùn)算符,就是因?yàn)樗L得真的太像海象了。

1. 第一個用法:if/else

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

在 Golang 中的條件語句可以直接在 if 中運(yùn)算變量的獲取后直接對這個變量進(jìn)行判斷,可以讓你少寫一行代碼

import "fmt"

func main() {
    if age := 20;age > 18 {
        fmt.Println("已經(jīng)成年了")
    }
}

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

age = 20
if age > 18:
    print("已經(jīng)成年了")

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

if (age:= 20) > 18:
    print("已經(jīng)成年了")

2. 第二個用法:while

在不使用 海象運(yùn)算符之前,使用 while 循環(huán)來讀取文件的時候,你也許會這么寫

file = open("demo.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line.strip())

但有了海象運(yùn)算符之后,你可以這樣

file = open("demo.txt", "r")
while (line := file.readline()):
    print(line.strip())

使用它替換以往的無限 while 循環(huán)寫法更為驚艷

比如,實(shí)現(xiàn)一個需要命令行交互輸入密碼并檢驗(yàn)的代碼,你也許會這樣子寫

while True:
   p = input("Enter the password: ")
   if p == "youpassword":
      break

有了海象運(yùn)算符之后,這樣子寫更為舒服

while (p := input("Enter the password: ")) != "youpassword":
   continue

3. 第三個用法:推導(dǎo)式

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

在編碼過程中,我很喜歡使用推導(dǎo)式,在簡單的應(yīng)用場景下,它簡潔且不失高效。

如下這段代碼中,我會使用列表推導(dǎo)式得出所有會員中過于肥胖的人的 bmi 指數(shù)

members = [
    {"name": "小五", "age": 23, "height": 1.75, "weight": 72},
    {"name": "小李", "age": 17, "height": 1.72, "weight": 63},
    {"name": "小陳", "age": 20, "height": 1.78, "weight": 82},
]

count = 0

def get_bmi(info):
    global count
    count += 1

    print(f"執(zhí)行了 {count} 次")

    height = info["height"]
    weight = info["weight"]

    return weight / (height**2)

# 查出所有會員中過于肥胖的人的 bmi 指數(shù)
fat_bmis = [get_bmi(m) for m in members if get_bmi(m) > 24]

print(fat_bmis)

輸出如下

執(zhí)行了 1 次
執(zhí)行了 2 次
執(zhí)行了 3 次
執(zhí)行了 4[25.88057063502083]

可以看到,會員數(shù)只有 3 個,但是 get_bmi 函數(shù)卻執(zhí)行了 4 次,原因是在判斷時執(zhí)行了 3 次,而在構(gòu)造新的列表時又重復(fù)執(zhí)行了一遍。

如果所有會員都是過于肥胖的,那最終將執(zhí)行 6 次,這種在大量的數(shù)據(jù)下是比較浪費(fèi)性能的,因此對于這種結(jié)構(gòu),我通常會使用傳統(tǒng)的for 循環(huán) + if 判斷。

fat_bmis = []

# 查出所有會員中過于肥胖的人的 bmi 指數(shù)
for m in members:
    bmi = get_bmi(m)
    if bmi > 24:
        fat_bmis.append(bmi)

在有了海象運(yùn)算符之后,你就可以不用在這種場景下做出妥協(xié)。

# 查出所有會員中過于肥胖的人的 bmi 指數(shù)
fat_bmis = [bmi for m in members if (bmi := get_bmi(m)) > 24]

最終從輸出結(jié)果可以看出,只執(zhí)行了 3 次

執(zhí)行了 1 次
執(zhí)行了 2 次
執(zhí)行了 3[25.88057063502083]

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    25353
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86651
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    173

    瀏覽量

    11463
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語言中位運(yùn)算符的高級用法(1)

    在上一篇文章中,我們介紹了&運(yùn)算符的基礎(chǔ)用法,本篇文章,我們將介紹& 運(yùn)算符的一些高級用法。
    發(fā)表于 08-22 10:44 ?509次閱讀
    C語言中位<b class='flag-5'>運(yùn)算符</b>的高級<b class='flag-5'>用法</b>(1)

    C語言中位運(yùn)算符的高級用法(2)

    在上一篇文章中,我們介紹了&運(yùn)算符的高級用法,本篇文章,我們將介紹| 運(yùn)算符的一些高級用法。
    發(fā)表于 08-22 10:45 ?480次閱讀
    C語言中位<b class='flag-5'>運(yùn)算符</b>的高級<b class='flag-5'>用法</b>(2)

    C語言中位運(yùn)算符的高級用法(3)

    在上一篇文章中,我們介紹了|運(yùn)算符的高級用法,本篇文章,我們將介紹^ 運(yùn)算符的一些高級用法
    發(fā)表于 08-22 10:47 ?400次閱讀
    C語言中位<b class='flag-5'>運(yùn)算符</b>的高級<b class='flag-5'>用法</b>(3)

    C語言中位運(yùn)算符的高級用法(4)

    在上一篇文章中,我們介紹了^運(yùn)算符的高級用法,本篇文章,我們將介紹~ 運(yùn)算符的一些高級用法。
    發(fā)表于 08-22 10:48 ?331次閱讀
    C語言中位<b class='flag-5'>運(yùn)算符</b>的高級<b class='flag-5'>用法</b>(4)

    C語言中位運(yùn)算符的高級用法(5)

    在上一篇文章中,我們介紹了~運(yùn)算符的高級用法,本篇文章,我們將介紹
    發(fā)表于 08-22 10:49 ?499次閱讀
    C語言中位<b class='flag-5'>運(yùn)算符</b>的高級<b class='flag-5'>用法</b>(5)

    2.7 python運(yùn)算符

    2.7 python運(yùn)算符0. 什么是運(yùn)算符?本章節(jié)主要說明Python運(yùn)算符。舉個簡單的例子 4 +5 = 9 。 例子中,4和5被稱為
    發(fā)表于 02-21 16:43

    移位運(yùn)算符的應(yīng)用實(shí)例講解

    移位運(yùn)算符在程序設(shè)計中,是位操作運(yùn)算符的一。移位運(yùn)算符可以在二進(jìn)制的基礎(chǔ)上對數(shù)字進(jìn)行平移。按照平移的方向和填充數(shù)字的規(guī)則分為三種:(帶符號
    的頭像 發(fā)表于 11-19 07:04 ?3767次閱讀
    移位<b class='flag-5'>運(yùn)算符</b>的應(yīng)用實(shí)例講解

    干貨:大實(shí)例講解三種C++運(yùn)算符重載

    本章節(jié)主要講解是運(yùn)算符重載。運(yùn)算符重載是賦予運(yùn)算符能操作自定義類型的功能。C++運(yùn)算符重載主要分為以下類:
    的頭像 發(fā)表于 09-30 16:59 ?3709次閱讀
    干貨:<b class='flag-5'>三</b>大實(shí)例講解<b class='flag-5'>三種</b>C++<b class='flag-5'>運(yùn)算符</b>重載

    python運(yùn)算符是什么

    python運(yùn)算符 0. 什么是運(yùn)算符? 本章節(jié)主要說明Python運(yùn)算符。舉個簡單的例子 4 +5 = 9 。 例子中,4和5被稱為操作
    的頭像 發(fā)表于 02-21 16:44 ?2696次閱讀

    條件(元)運(yùn)算符

    RTL建模中廣泛使用的運(yùn)算符是條件運(yùn)算符,也稱為運(yùn)算符,該運(yùn)算符用于在兩個表達(dá)式之間進(jìn)行選擇——表5-2列出了用于表示條件
    的頭像 發(fā)表于 02-09 15:42 ?1687次閱讀
    條件(<b class='flag-5'>三</b>元)<b class='flag-5'>運(yùn)算符</b>

    c語言運(yùn)算符及例題

    C語言中邏輯運(yùn)算符包含邏輯與&&、邏輯或||、邏輯非!三種。其中邏輯與&&是雙目運(yùn)算符,即需要運(yùn)算符兩邊都要有表達(dá)式,且兩邊表達(dá)式都為真,此表達(dá)式才為真;邏輯||也是雙目
    發(fā)表于 02-16 16:14 ?0次下載

    Python運(yùn)算符介紹

    : print(“a《30”) if 4 《= a 《= 30: print(“1《=a《=10”) if 4 《= a a 《= 30”) 3. 位運(yùn)算符 按位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計算的。Python中的按位
    的頭像 發(fā)表于 03-08 17:22 ?1376次閱讀

    python運(yùn)算符優(yōu)先級順序口訣

    Python是一非常流行的編程語言,具有廣泛的應(yīng)用領(lǐng)域。在Python中,運(yùn)算符是進(jìn)行各種數(shù)學(xué)和邏輯運(yùn)算的關(guān)鍵部分。了解
    的頭像 發(fā)表于 11-22 14:34 ?3611次閱讀

    python運(yùn)算符的優(yōu)先級大小

    Python運(yùn)算符的優(yōu)先級決定了表達(dá)式中各個運(yùn)算符的計算順序。了解運(yùn)算符的優(yōu)先級對于正確理解和編寫復(fù)雜的表達(dá)式非常重要。本文將詳細(xì)介紹Python
    的頭像 發(fā)表于 11-29 16:21 ?4200次閱讀

    邏輯異或運(yùn)算符Python中的用法

    Python編程語言中,邏輯異或運(yùn)算符并不直接作為一個內(nèi)置的操作存在,因?yàn)?b class='flag-5'>Python更側(cè)重于高級編程和可讀性,并沒有直接提供異或運(yùn)算符
    的頭像 發(fā)表于 11-19 09:46 ?838次閱讀