欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3.10新特性之match語(yǔ)句示例詳解

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

正文

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

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

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

想要通過(guò)字典來(lái)實(shí)現(xiàn)條件分支語(yǔ)句,首先我們需要定義一個(gè)字典,來(lái)表示不同case和返回值/函數(shù)之間的映射關(guān)系,然后再利用字典的特性,即可以實(shí)現(xiàn)類(lèi)似于switch的功能。下面定義一個(gè)簡(jiǎn)單的函數(shù),傳入不同的case就會(huì)打印不同的內(nèi)容,也可以將打印內(nèi)容的語(yǔ)句替換成你想要執(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)之前,我們更多的是通過(guò)上面這種字典映射的方式,來(lái)實(shí)現(xiàn)類(lèi)似于switch語(yǔ)句的功能。但是伴隨著Python 3.10的發(fā)布,Python也終于迎來(lái)了自己的'switch'語(yǔ)句,也就是接下來(lái)我們重點(diǎn)介紹的match語(yǔ)句。

Python 3.10 新特性—— match 語(yǔ)句,參考資料:Python 3.10增加了比switch更強(qiáng)大的match表達(dá)式在運(yùn)行以下代碼之前,請(qǐng)先確保自己的Python版本大于等于3.10。和其他語(yǔ)言一樣,當(dāng)變量num滿足哪個(gè)case的條件時(shí),就會(huì)執(zhí)行該條件下的對(duì)應(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í),如果我們沒(méi)有對(duì)“其他“情況進(jìn)行處理,那么是不會(huì)執(zhí)行任何操作的。

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

num = 3
match num:
    case 1:
        print('num 1')
    case 2:
        print('num 2')
無(wú)輸出
如果想要對(duì)”其他“情況進(jìn)行處理,那么寫(xiě)法如下:
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í),就會(huì)運(yùn)行到我們的default分支,同時(shí)會(huì)把變量值賦值給default變量。注意:這里的default僅僅只是一個(gè)變量名而已,并非規(guī)定寫(xiě)法,也可以使用其他變量名,例如x等。其作用就是在變量不符合任意一個(gè)分支條件時(shí),將變量值賦值給該變量。

在case中使用元組

Python的match語(yǔ)句不僅支持?jǐn)?shù)值類(lèi)型的分支,也支持其他數(shù)據(jù)類(lèi)型,例如元組(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中使用判斷語(yǔ)句#不僅如此,match語(yǔ)句還支持在分支條件中插入判斷語(yǔ)句:

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語(yǔ)句示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python3.10特性match語(yǔ)句的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • pandas 取出表中一列數(shù)據(jù)所有的值并轉(zhuǎn)換為array類(lèi)型的方法

    pandas 取出表中一列數(shù)據(jù)所有的值并轉(zhuǎn)換為array類(lèi)型的方法

    下面小編就為大家分享一篇pandas 取出表中一列數(shù)據(jù)所有的值并轉(zhuǎn)換為array類(lèi)型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python操作qml對(duì)象過(guò)程詳解

    Python操作qml對(duì)象過(guò)程詳解

    這篇文章主要介紹了Python操作qml對(duì)象過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 淺談pandas dataframe對(duì)除數(shù)是零的處理

    淺談pandas dataframe對(duì)除數(shù)是零的處理

    這篇文章主要介紹了淺談pandas dataframe對(duì)除數(shù)是零的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題

    精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題

    簡(jiǎn)單來(lái)說(shuō),自動(dòng)化測(cè)試框架包含了所有的測(cè)試工作所需的測(cè)試框架,下面這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化測(cè)試面試題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python利用pangu模塊實(shí)現(xiàn)文本格式化小工具

    Python利用pangu模塊實(shí)現(xiàn)文本格式化小工具

    其實(shí)使用pangu做文本格式標(biāo)準(zhǔn)化的業(yè)務(wù)代碼在之前就實(shí)現(xiàn)了,主要能夠?qū)⒅形奈谋疚臋n中的文字、標(biāo)點(diǎn)符號(hào)等進(jìn)行標(biāo)準(zhǔn)化。但是為了方便起來(lái)我們這里使用了Qt5將其做成了一個(gè)可以操作的頁(yè)面應(yīng)用,需要的可以了解一下
    2022-10-10
  • pandas.DataFrame中提取特定類(lèi)型dtype的列

    pandas.DataFrame中提取特定類(lèi)型dtype的列

    本文主要介紹了pandas.DataFrame中提取特定類(lèi)型dtype的列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • selenium+PhantomJS爬取豆瓣讀書(shū)

    selenium+PhantomJS爬取豆瓣讀書(shū)

    這篇文章主要為大家詳細(xì)介紹了selenium+PhantomJS爬取豆瓣讀書(shū),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 用python進(jìn)行視頻剪輯

    用python進(jìn)行視頻剪輯

    這篇文章主要介紹了如何用python進(jìn)行視頻剪輯,幫助大家更好的利用python處理視頻,感興趣的朋友可以了解下
    2020-11-11
  • python實(shí)現(xiàn)簡(jiǎn)單聊天功能

    python實(shí)現(xiàn)簡(jiǎn)單聊天功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Python中字符串格式化的方法詳解

    Python中字符串格式化的方法詳解

    眾所周知,我們可以使用 print() 方法來(lái)輸出一個(gè)固定內(nèi)容的字符串,就像是 print("Hello, world!") 一樣,但是,在現(xiàn)實(shí)中,我們很多時(shí)候是需要輸出一些內(nèi)容不斷變化,或者內(nèi)容動(dòng)態(tài)生成的字符串,本文將介紹如何按照需要,在Python中格式化一個(gè)字符串
    2023-10-10

最新評(píng)論