Match 和 switch 都是控制流語句,但它們在語法和用法上有一些區別。
(1) 語法:
(2) 匹配模式:
switch 語句通常只能匹配整數或枚舉類型,而 match 語句可以匹配更復雜的模式,包括字符串、列表、元組等。
(3) 執行順序:
(4) 性能:
總的來說,match 和 switch 都是控制流語句,但它們在語法、匹配模式、執行順序和性能等方面有一些區別。
在 Python 3.10 中,引入了 match 語句作為 switch 語句的更強大版本。match 語句可以用于模式匹配,這是一種更靈活和可讀性更高的方式來匹配值。
match 語句的基本語法如下:
pythonmatch 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 是匹配模式,_ 是一個特殊的模式,用于匹配任何值。
例如,我們可以使用 match 語句來匹配一個整數的值:
pythondef 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"
在這個例子中,match 語句會嘗試匹配 status 的值,并執行相應的代碼。如果 status 的值不匹配任何一個模式,那么就會執行 _ 模式對應的代碼。
match 語句也可以匹配更復雜的模式,例如,我們可以匹配一個元組:
pythonmatch 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")
在這個例子中,match 語句會嘗試匹配 point 的值,并執行相應的代碼。如果 point 的值不匹配任何一個模式,那么就會引發 ValueError 異常。
本文鏈接:http://www.www897cc.com/showinfo-26-48740-0.htmlPython 的 match 有點好用,推薦試試
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Finally中的代碼一定會執行嗎?
下一篇: 理解C++之類模板