日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python的match有點(diǎn)好用,推薦試試

Match 和 switch 都是控制流語(yǔ)句,但它們?cè)谡Z(yǔ)法和用法上有一些區(qū)別。

創(chuàng)新互聯(lián)建站云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、溫江服務(wù)器托管、云服務(wù)器、網(wǎng)頁(yè)空間、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)頁(yè)空間、空間域名、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

(1) 語(yǔ)法:

  • switch 語(yǔ)句通常在其他編程語(yǔ)言中使用,如 C、C++、Java 等。它的語(yǔ)法通常是 switch(expression) { case value1: ... case value2: ... default: ... }。
  • match 語(yǔ)句是 Python 3.10 引入的新特性,它的語(yǔ)法是 match subject: case pattern_1: ... case pattern_2: ... case _: ...。

(2) 匹配模式:

switch 語(yǔ)句通常只能匹配整數(shù)或枚舉類型,而 match 語(yǔ)句可以匹配更復(fù)雜的模式,包括字符串、列表、元組等。

(3) 執(zhí)行順序:

  • switch 語(yǔ)句通常會(huì)按照 case 的順序執(zhí)行,直到找到匹配的 case 為止。如果沒(méi)有找到匹配的 case,那么就會(huì)執(zhí)行 default 分支。
  • match 語(yǔ)句會(huì)按照 case 的順序執(zhí)行,直到找到匹配的 case 為止。如果沒(méi)有找到匹配的 case,那么就會(huì)執(zhí)行 _ 分支。

(4) 性能:

  • switch 語(yǔ)句通常比 match 語(yǔ)句更快,因?yàn)樗梢灾苯犹D(zhuǎn)到匹配的 case。
  • match 語(yǔ)句的性能通常比 switch 語(yǔ)句差,因?yàn)樗枰饌€(gè)檢查每個(gè) case。

總的來(lái)說(shuō),match 和 switch 都是控制流語(yǔ)句,但它們?cè)谡Z(yǔ)法、匹配模式、執(zhí)行順序和性能等方面有一些區(qū)別。

在 Python 3.10 中,引入了 match 語(yǔ)句作為 switch 語(yǔ)句的更強(qiáng)大版本。match 語(yǔ)句可以用于模式匹配,這是一種更靈活和可讀性更高的方式來(lái)匹配值。

match 語(yǔ)句的基本語(yǔ)法如下:

python
match subject:
    case pattern_1:
        # code to execute if subject matches pattern_1
    case pattern_2:
        # code to execute if subject matches pattern_2
    ...
    case _:
        # code to execute if subject does not match any of the patterns

其中,subject 是要匹配的值,pattern_1 和 pattern_2 是匹配模式,_ 是一個(gè)特殊的模式,用于匹配任何值。

例如,我們可以使用 match 語(yǔ)句來(lái)匹配一個(gè)整數(shù)的值:

python
def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

在這個(gè)例子中,match 語(yǔ)句會(huì)嘗試匹配 status 的值,并執(zhí)行相應(yīng)的代碼。如果 status 的值不匹配任何一個(gè)模式,那么就會(huì)執(zhí)行 _ 模式對(duì)應(yīng)的代碼。

match 語(yǔ)句也可以匹配更復(fù)雜的模式,例如,我們可以匹配一個(gè)元組:

python
match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

在這個(gè)例子中,match 語(yǔ)句會(huì)嘗試匹配 point 的值,并執(zhí)行相應(yīng)的代碼。如果 point 的值不匹配任何一個(gè)模式,那么就會(huì)引發(fā) ValueError 異常。


當(dāng)前文章:Python的match有點(diǎn)好用,推薦試試
分享鏈接:http://www.5511xx.com/article/cojicsi.html