日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python指南之結構化模式匹配:讓編程變得更簡單、更靈活

Python的結構化模式匹配

Python 3.10 版本引入了一項新功能,叫做結構化模式匹配。這其實就是一種條件邏輯,可以讓我們根據(jù)不同的條件執(zhí)行不同的代碼。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、雅安服務器托管、營銷軟件、網(wǎng)站建設、天等網(wǎng)站維護、網(wǎng)站推廣。

比如說,我想根據(jù)用戶的午餐訂單來顯示不同的消息:

lunch_order = input("What would you like for lunch? ")

match lunch_order:
    case 'pizza':
        print("Pizza time!")
    case 'sandwich':
        print("Here's your sandwich")
    case 'taco':
        print('Taco, taco, TACO, tacotacotaco!')
    case _:
        print("Yummy.")

在這里,程序會檢查 lunch_order 的值,并與不同的情況進行匹配。一旦找到匹配項,就會執(zhí)行相應的代碼。比如用戶輸入 "pizza",程序就會顯示"Pizza time!"。

最后一個情況中的下劃線 _ 是一個通配符,可以匹配任何值。如果輸入的值沒有匹配到前面的任何一種,就會執(zhí)行這個通配符對應的代碼。

或模式

在 Python 的模式匹配中,我們還可以用 or 模式來匹配多個可能的值。比如:

lunch_order = input("What would you like for lunch? ") 

match lunch_order:
    # --snip--
    case 'taco':
        print('Taco, taco, TACO, tacotacotaco!')
    case 'salad' | 'soup':
        print('Eating healthy, eh?')
    case _:
        print("Yummy.")

在這個例子中,如果用戶輸入 "salad" 或 "soup",程序就會顯示 "Eating healthy, eh?"。

捕獲模式

首先,我們來看看怎么用Python來做一個午餐點餐的程序。我們的目的是,無論用戶輸入什么,我們都能給出一個回應??催@個例子:

lunch_order = input("你想吃什么午餐?") 

match lunch_order:
    # 這里還有其他代碼
    case 'salad' | 'soup':
        print('吃得健康哦!')
    case order:
        print(f"享受你的{order}。")

在這個代碼里,如果用戶輸入的不是我們列出的菜單上的東西,比如不是沙拉或湯,我們就用 case order: 這行來捕獲他們的輸入。這樣用戶輸入什么,我們就回應什么。

部分捕獲

我們還可以只捕獲用戶輸入的一部分。比如說,我們想讓程序能處理類似“草莓冰淇淋”這樣的輸入,我們可以這樣寫:

lunch_order = input("你想吃什么午餐?")
if ' ' in lunch_order:
    lunch_order = lunch_order.split(maxsplit=1)

match lunch_order:
    case (flavor, 'ice cream'):
        print(f"這是你的成熟{flavor}午餐。")
    # 這里還有其他代碼

這段代碼會把輸入分成兩部分,如果第二部分是"ice cream",第一部分就會被捕獲為 flavor

注意點

使用捕獲模式時,有一個小陷阱。在模式中的所有沒有修飾的變量名,都會被用來捕獲值。這意味著,如果你想使用某個變量的值,你需要使用點操作符來指定它??催@個例子:

class Special:
    TODAY = 'lasagna'

lunch_order = input("你想吃什么午餐?")

match lunch_order:
    case Special.TODAY:
        print("今天的特餐很棒!")
    case 'pizza':
        print("披薩時間!")

守衛(wèi)語句

最后,我想向你們展示一個叫做“守衛(wèi)語句”的技巧。這是一個額外的條件語句,只有在滿足這個條件時,模式才會匹配。比如說,我們想讓程序能特別處理“冰淇淋”這個詞,我們可以這樣寫:

class Special:
    TODAY = 'lasagna'

lunch_order = input("你想吃什么午餐?")

match lunch_order:
    # 這里還有其他代碼
    case 'salad' | 'soup':
        print('吃得健康哦!')
    case ice_cream if 'ice cream' in ice_cream:
        flavor = ice_cream.replace('ice cream', '').strip()
        print(f"這是你的成熟{flavor}午餐。")
    case order:
        print(f"享受你的{order}。")

在這個例子里,如果用戶輸入的詞里包含"ice cream",程序就會特別處理。

希望這個小教程對你們有幫助!通過這些例子,你可以看到Python模式匹配的強大之處,以及它如何幫助我們更好地處理數(shù)據(jù)和用戶的輸入。

Python模式匹配總結

在Python中,模式匹配有點像“魔法”,很容易讓人愛不釋手。但記住,不要濫用哦!結構化模式匹配特別適合在多種可能的模式中檢查一個主題,但就像午餐訂單中的“冰淇淋”情形,當主題的可能值變得復雜時,它的局限性就顯現(xiàn)出來了。如果你不確定是否需要在某個場景使用結構化模式匹配,那就堅持使用條件語句吧。


名稱欄目:Python指南之結構化模式匹配:讓編程變得更簡單、更靈活
分享地址:http://www.dlmjj.cn/article/djehjhd.html