如何在匹配案例python 3.10中做一个else
Posted
技术标签:
【中文标题】如何在匹配案例python 3.10中做一个else【英文标题】:how to do an else in match case python 3.10 【发布时间】:2021-10-18 14:04:34 【问题描述】:Python最近在python 3.10版本中发布了match case。问题是我们如何在python中为case做一个默认值。我可以做if elif但不知道怎么做else。下面是代码。
x = "hello"
match x:
case "hi":
print(x)
case "hey":
print(x)
default:
print("not matched")
我自己添加了这个默认。我想知道在python中这样做的方法
【问题讨论】:
【参考方案1】:您可以在 python 中定义默认情况。为此,您使用通配符 _。下面的代码演示了它。
x = "hello"
match x:
case "hi":
print(x)
case "hey":
print(x)
case _:
print("not matched")
【讨论】:
【参考方案2】:match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
cf:https://docs.python.org/3.10/whatsnew/3.10.html#syntax-and-operations
【讨论】:
【参考方案3】:for thing in [[1,2],[2,11],[12,14,13],[10],[10,20,30,40,50]]:
match thing:
case [x]:
print(f"single value: x")
case [x,y]:
print(f"two values: x and y")
case [x,y,z]:
print(f"three values: x, y and z")
case _: # change this in default
print("too many values")
如果您想阅读并获得更多了解:https://towardsdatascience.com/pattern-matching-in-python-3-10-6124ff2079f0
【讨论】:
@blackbrandt,我刚刚修好了以上是关于如何在匹配案例python 3.10中做一个else的主要内容,如果未能解决你的问题,请参考以下文章
[EuroPython 2021笔记] Python 3.10新功能开发者亲述:模式匹配案例实战
[EuroPython 2021笔记] Python 3.10新功能开发者亲述:模式匹配案例实战
[EuroPython 2021笔记] Python 3.10新功能开发者亲述:模式匹配案例实战