最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3.10新特性之match語句示例詳解

 更新時(shí)間:2023年02月09日 15:07:42   作者:瑞0908  
這篇文章主要為大家介紹了Python3.10新特性之match語句示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

在Python 3.10發(fā)布之前,Python是沒有類似于其他語言中switch語句的,要實(shí)現(xiàn)類似的功能最簡單的方法就是通過if ... elif ... else ...語句,但是這樣畢竟不夠優(yōu)雅,不夠“Pythonic”

更推薦的做法是通過字典(dict)實(shí)現(xiàn)。

通過字典間接實(shí)現(xiàn) switch

想要通過字典來實(shí)現(xiàn)條件分支語句,首先我們需要定義一個(gè)字典,來表示不同case和返回值/函數(shù)之間的映射關(guān)系,然后再利用字典的特性,即可以實(shí)現(xiàn)類似于switch的功能。下面定義一個(gè)簡單的函數(shù),傳入不同的case就會打印不同的內(nèi)容,也可以將打印內(nèi)容的語句替換成你想要執(zhí)行的函數(shù):

def switch(case):
    mapping = {
        1: "print('case 1')",
        2: "print('case 2')"
    }
    return eval(mapping[case])
switch(1)
運(yùn)行結(jié)果:
case 1

可以看到,輸出結(jié)果正是我們想要的“case 1”的結(jié)果。

在Python 3.10出現(xiàn)之前,我們更多的是通過上面這種字典映射的方式,來實(shí)現(xiàn)類似于switch語句的功能。但是伴隨著Python 3.10的發(fā)布,Python也終于迎來了自己的'switch'語句,也就是接下來我們重點(diǎn)介紹的match語句。

Python 3.10 新特性—— match 語句,參考資料:Python 3.10增加了比switch更強(qiáng)大的match表達(dá)式在運(yùn)行以下代碼之前,請先確保自己的Python版本大于等于3.10。和其他語言一樣,當(dāng)變量num滿足哪個(gè)case的條件時(shí),就會執(zhí)行該條件下的對應(yīng)代碼:

num = 5
match num:
    case 10:
        print('you lose')
    case 5:
        print('you win')
運(yùn)行結(jié)果:
you win

當(dāng)默認(rèn)分支#當(dāng)變量a不滿足任意一個(gè)case條件時(shí),如果我們沒有對“其他“情況進(jìn)行處理,那么是不會執(zhí)行任何操作的。

下面的代碼是不會有任何輸出的,因?yàn)閍不滿足任意一個(gè)條件:

num = 3
match num:
    case 1:
        print('num 1')
    case 2:
        print('num 2')
無輸出
如果想要對”其他“情況進(jìn)行處理,那么寫法如下:
num = 3
match num:
    case 1:
        print('num 1')
    case 2:
        print('num 2')
    case default:
        print('case default', default)
運(yùn)行結(jié)果:
case default 3

可以看到,當(dāng)變量a不符合任意一個(gè)條件時(shí),就會運(yùn)行到我們的default分支,同時(shí)會把變量值賦值給default變量。注意:這里的default僅僅只是一個(gè)變量名而已,并非規(guī)定寫法,也可以使用其他變量名,例如x等。其作用就是在變量不符合任意一個(gè)分支條件時(shí),將變量值賦值給該變量。

在case中使用元組

Python的match語句不僅支持?jǐn)?shù)值類型的分支,也支持其他數(shù)據(jù)類型,例如元組(tuple)

a = (2, 4)
match a:
    case (1, 2):
        print('case 1')
    case (2, x):
        print('case 2', x)
運(yùn)行結(jié)果:
case 2 4

可以看到,變量a在匹配到第二個(gè)分支條件時(shí),還把元組的第二個(gè)元素值4賦值給了變量x。在case中使用判斷語句#不僅如此,match語句還支持在分支條件中插入判斷語句:

a = (2, 2)
flag = False
match a:
    case (1, 2):
        print('case 1')
    case (2, x) if flag:
        print('case 2', x)
    case default:
        print('case default', default)
運(yùn)行結(jié)果:
case default (2, 2)

由于第二個(gè)分支條件中if flag為False,不符合條件,所以代碼進(jìn)入到最后一個(gè)分支條件中。

以上就是Python3.10新特性之match語句示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python3.10特性match語句的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python實(shí)現(xiàn)批量修改文件名

    python實(shí)現(xiàn)批量修改文件名

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量修改文件名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Java Web開發(fā)過程中登陸模塊的驗(yàn)證碼的實(shí)現(xiàn)方式總結(jié)

    Java Web開發(fā)過程中登陸模塊的驗(yàn)證碼的實(shí)現(xiàn)方式總結(jié)

    Java的SSH三大Web開發(fā)框架中,對于驗(yàn)證碼這一基本功能的處理都比較得心應(yīng)手,接下來我們就來看看整理出的Java Web開發(fā)過程中登陸模塊的驗(yàn)證碼的實(shí)現(xiàn)方式總結(jié):
    2016-05-05
  • python3實(shí)現(xiàn)163郵箱SMTP發(fā)送郵件

    python3實(shí)現(xiàn)163郵箱SMTP發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了Python3實(shí)現(xiàn)163郵箱SMTP發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python可視化大屏庫big_screen示例詳解

    python可視化大屏庫big_screen示例詳解

    提到數(shù)據(jù)可視化,我們會想到 Plotly、Matplotlib、Pyecharts等可視化庫,或者一些商用軟件Tableau、FineBI等等。如果你希望操作更簡單、展現(xiàn)效果更強(qiáng)大,那么這款工具 big_screen 更適合
    2021-11-11
  • Python 實(shí)現(xiàn)LeNet網(wǎng)絡(luò)模型的訓(xùn)練及預(yù)測

    Python 實(shí)現(xiàn)LeNet網(wǎng)絡(luò)模型的訓(xùn)練及預(yù)測

    本文將為大家詳細(xì)講解如何使用CIFR10數(shù)據(jù)集訓(xùn)練模型以及用訓(xùn)練好的模型做預(yù)測。代碼具有一定價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-11-11
  • python網(wǎng)絡(luò)編程 使用UDP、TCP協(xié)議收發(fā)信息詳解

    python網(wǎng)絡(luò)編程 使用UDP、TCP協(xié)議收發(fā)信息詳解

    這篇文章主要介紹了python網(wǎng)絡(luò)編程 使用UDP、TCP協(xié)議收發(fā)信息詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python從列表推導(dǎo)到zip()函數(shù)的5種技巧總結(jié)

    Python從列表推導(dǎo)到zip()函數(shù)的5種技巧總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Python從列表推導(dǎo)到zip()函數(shù)的5種技巧的相關(guān)知識點(diǎn)和代碼,需要的朋友們參考學(xué)習(xí)下。
    2019-10-10
  • Python爬蟲lxml庫處理XML和HTML文檔

    Python爬蟲lxml庫處理XML和HTML文檔

    在當(dāng)今信息爆炸的時(shí)代,網(wǎng)絡(luò)上的數(shù)據(jù)量龐大而繁雜,為了高效地從網(wǎng)頁中提取信息,Python爬蟲工程師們需要強(qiáng)大而靈活的工具,其中,lxml庫憑借其卓越的性能和豐富的功能成為Python爬蟲領(lǐng)域的不可或缺的工具之一,本文將深入介紹lxml庫的各個(gè)方面,充分掌握這個(gè)強(qiáng)大的爬蟲利器
    2023-12-12
  • Python math庫 ln(x)運(yùn)算的實(shí)現(xiàn)及原理

    Python math庫 ln(x)運(yùn)算的實(shí)現(xiàn)及原理

    這篇文章主要介紹了Python math庫 ln(x)運(yùn)算的實(shí)現(xiàn)及原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法

    Python升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法

    這篇文章主要給大家介紹了因?yàn)镻ython升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法,文中通過示例代碼將解決的方法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09

最新評論

麻江县| 罗源县| 肇源县| 津南区| 阿勒泰市| 长治县| 石门县| 萨迦县| 廉江市| 城口县| 瓦房店市| 洮南市| 富阳市| 普陀区| 海门市| 宜川县| 延长县| 灵石县| 唐海县| 山丹县| 彭州市| 井陉县| 长汀县| 牙克石市| 天台县| 淮北市| 潼南县| 宁陕县| 新和县| 香港 | 古交市| 桂平市| 龙口市| 黄大仙区| 玉山县| 绥滨县| 池州市| 镇坪县| 手机| 仁怀市| 延边|