欧美**视频一级毛片_国产午夜精品久久久久九九_www.毛片在线观看_免费观看的毛片大全


 

全球熱文:Python?match語句的具體使用
發布時間:2023-04-22 06:08:05 文章來源:腳本之家
match語句接受一個表達式,并將其值與作為一個或多個case塊給出的連續模式進行比較,本文主要介紹了Pythonmatch語句的具體使用,對大家的學習

python 3.10支持match語句,3,10以下不支持。

match語句接受一個表達式,并將其值與作為一個或多個case塊給出的連續模式進行比較。這表面上類似于C、Java或JavaScript(以及許多其他語言)中的switch語句,但更類似于Rust或Haskell等語言中的模式匹配。只有第一個匹配的模式才會被執行,它還可以將值中的組件(序列元素或對象屬性)提取到變量中。

最簡單的形式是將一個目標值與一個或多個字面值進行比較:


【資料圖】

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"

注意最后一個代碼塊:“變量名” _ 被作為 通配符 并必定會匹配成功。 如果沒有 case 語句匹配成功,則不會執行任何分支。

使用 | (“ or ”)在一個模式中可以組合多個字面值:

case 401 | 403 | 404:
    return "Not allowed"

模式的形式類似解包賦值,并可被用于綁定變量:

# point is an (x, y) tuple
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")

請仔細研究此代碼! 第一個模式有兩個字面值,可以看作是上面所示字面值模式的擴展。但接下來的兩個模式結合了一個字面值和一個變量,而變量 綁定 了一個來自目標的值(point)。第四個模式捕獲了兩個值,這使得它在概念上類似于解包賦值 (x, y) = point。

如果使用類實現數據結構,可在類名后加一個類似于構造器的參數列表,這樣做可以把屬性放到變量里:

class Point:
    x: int
    y: int
 
def where_is(point):
    match point:
        case Point(x=0, y=0):
            print("Origin")
        case Point(x=0, y=y):
            print(f"Y={y}")
        case Point(x=x, y=0):
            print(f"X={x}")
        case Point():
            print("Somewhere else")
        case _:
            print("Not a point")

可在 dataclass 等支持屬性排序的內置類中使用位置參數。還可在類中設置 __match_args__ 特殊屬性為模式的屬性定義指定位置。如果它被設為 ("x", "y"),則以下模式均為等價的,并且都把 y 屬性綁定到 var 變量:

Point(1, var)
Point(1, y=var)
Point(x=1, y=var)
Point(y=var, x=1)

讀取模式的推薦方式是將它們看做是你會在賦值操作左側放置的內容的擴展形式,以便理解各個變量將會被設置的值。 只有單獨的名稱(例如上面的 var)會被 match 語句所賦值。 帶點號的名稱 (例如 foo.bar)、屬性名稱(例如上面的 x= 和 y=)或類名稱(通過其后的 "(...)" 來識別,例如上面的 Point)都絕不會被賦值。

模式可以任意地嵌套。例如,如果有一個由點組成的短列表,則可使用如下方式進行匹配:

match points:
    case []:
        print("No points")
    case [Point(0, 0)]:
        print("The origin")
    case [Point(x, y)]:
        print(f"Single point {x}, {y}")
    case [Point(0, y1), Point(0, y2)]:
        print(f"Two on the Y axis at {y1}, {y2}")
    case _:
        print("Something else")

為模式添加成為守護項的 if 子句。如果守護項的值為假,則 match 繼續匹配下一個 case 語句塊。注意,值的捕獲發生在守護項被求值之前:

match point:
    case Point(x, y) if x == y:
        print(f"Y=X at {x}")
    case Point(x, y):
        print(f"Not on the diagonal")

match 語句的其他特性:

與解包賦值類似,元組和列表模式具有完全相同的含義,并且實際上能匹配任意序列。 但它們不能匹配迭代器或字符串。序列模式支持擴展解包操作:[x, y, *rest] 和 (x, y, *rest) 的作用類似于解包賦值。 在 * 之后的名稱也可以為 _,因此,(x, y, *_) 可以匹配包含至少兩個條目的序列,而不必綁定其余的條目。映射模式:{"bandwidth": b, "latency": l} 從字典中捕獲 "bandwidth" 和 "latency" 的值。與序列模式不同,額外的鍵會被忽略。**rest 等解包操作也支持。但 **_ 是冗余的,不允許使用。

使用 as 關鍵字可以捕獲子模式:

case (Point(x1, y1), Point(x2, y2) as p2): ...

將把輸入的第二個元素捕獲為 p2 (只要輸入是包含兩個點的序列)

大多數字面值是按相等性比較的,但是單例對象 True, False 和 None 則是按標識號比較的。

模式可以使用命名常量。 這些命名常量必須為帶點號的名稱以防止它們被解讀為捕獲變量:

from enum import Enum
class Color(Enum):
    RED = "red"
    GREEN = "green"
    BLUE = "blue"
 
color = Color(input("Enter your choice of "red", "blue" or "green": "))
 
match color:
    case Color.RED:
        print("I see red!")
    case Color.GREEN:
        print("Grass is green")
    case Color.BLUE:
        print("I"m feeling the blues :(")

到此這篇關于Python match語句的具體使用的文章就介紹到這了,更多相關Python match內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:

資訊播報

樂活HOT

  • 《熊出沒·伴我“熊芯”》票房破10億 打破內地影史春節檔動畫片紀錄
    《熊出沒·伴我“熊芯”》票房破

    據各方數據,1月31日上午10時許,深圳出品的動畫電影《熊出沒·伴我熊芯》票房突破10億元,在首日票房、檔期票房、連續破億天數等多方面打

  • 今年春節深圳游客出境游訂單量大幅增加 曼谷等地成為最受歡迎目的地
    今年春節深圳游客出境游訂單量大

    1月27日,攜程發布的《2023年春節旅游總結報告》顯示,今年春節,深圳游客的出境游訂單量同比去年增長近5倍。相較國內熱門景點的人山人海,

  • 2023年春節黃金周深圳共接待游客469.25萬人次 旅游收入31.58億元
    2023年春節黃金周深圳共接待游客

    1月27日,記者從深圳市文化廣電旅游體育局獲悉,2023年春節黃金周期間(1月21日至27日),深圳共接待游客469 25萬人次,旅游收入31 58億元,

  • 深圳機場連續多日客流量超過10萬人次 衛星廳迎來首個大客流春運
    深圳機場連續多日客流量超過10萬

    據深圳市春運辦統計,1月15日和16日連續兩天,深圳對外發送旅客人數都在48萬左右,春運進入客流高峰期。1月15日,深圳春運對外旅客發送量達

  • 深圳交響樂團將將舉辦兩場音樂會 以世界經典管弦樂和歌劇詠嘆調為主
    深圳交響樂團將將舉辦兩場音樂會

    新年音樂會是觀眾喜聞樂見的年度重要文化品牌活動,多年來已成為深圳市民跨歲迎新的例牌項目。12月30日、31日晚,深圳交響樂團將在深圳音樂

  • 深圳大力推進實施人才強市戰略 深圳市人才總量已達到663萬人
    深圳大力推進實施人才強市戰略

    作為來深科研人員中的一員,中山大學附屬第八醫院的助理研究員郭雅婕對深圳在人才服務方面的舉措贊不絕口:我作為基礎研究人員,很希望自己

  • 2023年故宮年票正式開售 有消費者目前仍對購買年票持觀望態度
    2023年故宮年票正式開售 有消費

    12月1日晚8點,2023年故宮年票正式開售。相比于去年,今年購票順暢了許多。據了解,2022年故宮年票發售時,因短時間內購買年票人數過多,曾

  • 御寒類商品消費需求有所上升 羽絨服的整體銷售額同比增長達100%
    御寒類商品消費需求有所上升 羽

    昨日,冷空氣到達,廣州氣溫逐步下降。據商超方面預測,隨著氣溫的逐漸下降,市民對于御寒類商品消費需求有所上升,不少廣州商超準備了有關

  • 深圳全市共排查窨井蓋約350萬個 發現存在問題的窨井蓋約3.2萬個
    深圳全市共排查窨井蓋約350萬個

    小井蓋、大民生。今年以來,深圳開展全市窨井蓋專項治理工作成效顯著。截至11月20日,全市共排查窨井蓋約350萬個,發現存在問題的窨井蓋約3

  • 汕汕鐵路汕頭站公布最新動態 首期工程預計將于2024年11月完成
    汕汕鐵路汕頭站公布最新動態 首

    備受關注的汕汕(汕頭至汕尾)鐵路汕頭站及站區工程近日傳出最新動態:項目已順利完成工程招標工作,由中鐵建設集團有限公司中標承建。目前,

娛樂LOVE

精彩推送

欧美**视频一级毛片_国产午夜精品久久久久九九_www.毛片在线观看_免费观看的毛片大全

                亚洲免费观看视频| 欧美videossexotv100| 久久久青草青青国产亚洲免观| 亚洲激情图片一区| 国产一区二区三区蝌蚪| 日本一区二区动态图| 91成人在线免费观看| 国产亚洲视频系列| 日本网站在线观看一区二区三区| 99综合影院在线| 偷偷要91色婷婷| 欧美激情一区不卡| 久久爱www久久做| 国产精品美女一区二区| 欧美日韩在线播| 亚洲欧美日韩国产综合在线| 国产精品91xxx| 亚洲黄色尤物视频| 日韩精品一区二区三区swag | 亚洲乱码精品一二三四区日韩在线| 欧美人妇做爰xxxⅹ性高电影| 亚洲欧美日韩一区| 成人在线一区二区三区| 亚洲一区二区三区中文字幕| 2021国产精品久久精品| 秋霞午夜av一区二区三区| 中文字幕二三区不卡| 在线播放中文字幕一区| 亚洲成人激情综合网| 久久久久久久精| 欧美精品视频www在线观看| 亚洲高清一区二区三区| 久久久美女毛片| 欧美久久久久久久久中文字幕| 一区二区三区免费在线观看| 99精品黄色片免费大全| 欧美视频一区二区| 亚洲成人av免费| 国产亚洲一二三区| 日韩一区二区三| 日本不卡一二三| 亚洲色大成网站www久久九九| 精品久久久久久久久久久院品网| 日本不卡1234视频| 1024成人网色www| 国产亚洲制服色| 国产精品一区在线观看你懂的| 亚洲一区二区精品视频| 国产精品乱人伦中文| 成人av免费在线| 欧美高清hd18日本| 日本色综合中文字幕| 亚洲欧洲av在线| 国产日韩精品一区二区浪潮av| 国产精品正在播放| 欧美性视频一区二区三区| 午夜久久久久久久久| ...中文天堂在线一区| 久久精品人人做人人爽人人| 国产不卡在线一区| 欧美日韩综合一区| 丝袜美腿亚洲色图| 亚洲精品乱码久久久久久日本蜜臀| 欧美国产欧美综合| 91在线观看美女| 日韩一区二区三区av| 国产在线日韩欧美| 91久久精品网| 日韩和的一区二区| 一区二区三区日韩欧美精品| 亚洲日本免费电影| 中文字幕乱码日本亚洲一区二区 | 亚洲美女视频一区| 国产精品毛片无遮挡高清| 久久亚洲精精品中文字幕早川悠里| 日韩女优av电影| 国产激情视频一区二区在线观看| 欧美三级在线播放| 美洲天堂一区二卡三卡四卡视频| 亚洲国产美女搞黄色| 亚洲成在线观看| 亚洲综合偷拍欧美一区色| 亚洲精品福利视频网站| 成人欧美一区二区三区黑人麻豆 | 国产一区二区三区精品视频| 91国产视频在线观看| 日本不卡一区二区三区| 五月天激情综合| 日本aⅴ亚洲精品中文乱码| 午夜av区久久| 青娱乐精品在线视频| 在线免费观看日本一区| 老司机午夜精品| 欧美情侣在线播放| 国产精品一品视频| 日韩欧美电影在线| 成人污视频在线观看| 精品少妇一区二区三区在线视频| kk眼镜猥琐国模调教系列一区二区| 日韩视频一区二区三区| 成人的网站免费观看| 久久蜜桃一区二区| 久久久久高清精品| 国产精品久久99| 亚洲视频综合在线| 午夜精品在线看| 一本色道综合亚洲| 九九精品视频在线看| 欧美精品一二三| av不卡一区二区三区| 久久久久久97三级| 国产精品色哟哟网站| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产精品人人做人人爽| 免费高清在线一区| 欧美日韩成人激情| 99久久99精品久久久久久| 国产色综合久久| 日韩一区在线播放| 香蕉成人啪国产精品视频综合网| 91黄色在线观看| 国产精品一区二区在线播放| 精品国产自在久精品国产| 国产欧美日韩中文久久| 一区二区三区高清在线| 日本精品裸体写真集在线观看| 国产精品亚洲专一区二区三区 | av在线不卡观看免费观看| 国产精品美女久久久久久久| 亚洲精品视频免费观看| 美女尤物国产一区| 日韩丝袜情趣美女图片| 欧美激情一区二区三区| 亚洲福中文字幕伊人影院| 欧洲精品一区二区| 白白色 亚洲乱淫| 一区在线观看免费| 午夜精品成人在线视频| 国产丶欧美丶日本不卡视频| 国产色综合久久| 一区二区成人在线视频| 国内不卡的二区三区中文字幕| 久久综合九色欧美综合狠狠| 中文字幕亚洲精品在线观看| 亚洲成av人片一区二区三区| 欧美精品欧美精品系列| 2024国产精品视频| 亚洲一区二区三区小说| 欧美三日本三级三级在线播放| 菠萝蜜视频在线观看一区| 亚洲视频 欧洲视频| 在线视频中文字幕一区二区| 波多野结衣的一区二区三区| 中文字幕字幕中文在线中不卡视频| 午夜精品久久久久| www.一区二区| 亚洲综合网站在线观看| 欧美福利一区二区| 中文天堂在线一区| 麻豆91免费观看| 久久久久99精品国产片| 伊人开心综合网| 国产精品一区二区三区网站| 一区二区中文字幕在线| 欧日韩精品视频| 久久精品视频在线看| 日韩精品成人一区二区三区| 日韩欧美自拍偷拍| 亚洲免费在线电影| 国产成人精品三级麻豆| 综合色天天鬼久久鬼色| 欧美日韩国产一二三| 国产精品久久久久久久久久免费看| 奇米影视一区二区三区| 国产午夜精品久久久久久久 | 亚洲综合偷拍欧美一区色| 欧美一级免费大片| 亚洲免费三区一区二区| 懂色av噜噜一区二区三区av| 亚洲一区免费视频| 精品福利av导航| 午夜精品免费在线| 国产日韩欧美在线一区| 久久se精品一区二区| 成人欧美一区二区三区视频网页 | 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩一区二区三区免费看| 国产亚洲精品aa午夜观看| 久久精品国产免费看久久精品| 国产精品理论在线观看| 欧美日韩精品一区二区| 亚洲欧洲美洲综合色网| 成人一区在线观看| 亚洲综合丁香婷婷六月香| 精品国产一区a| 色婷婷精品久久二区二区蜜臂av | 亚洲婷婷综合色高清在线| 3d动漫精品啪啪1区2区免费 | 久久精品国产在热久久| 亚洲天堂精品视频|