在Python中为两种不同的情况使用相同的指令定义匹配案例语句

问题描述 投票:0回答:2

我想在 Python 中创建一个匹配大小写语句,其中两个大小写执行相同的指令。例如,如果 Python 的行为像 C++,根据这个 Stack Overflow 问题,我会将匹配大小写语句写为:

        match x:
            case 1:
            case 2:
                # Some code
                break
            case 3:
                # Some code
                break

但是代码不起作用,这表明在 Python 中需要以不同的方式编写 match-case 语句。这是什么路?

python switch-statement
2个回答
5
投票
match x:
    case 1 | 2:
        # Some code
    case 3:
        # Some code

Python 匹配子句不会失败,因此您不能像 C 中那样将它们连接起来,并且在子句末尾不使用

break

“OR 模式”(如图所示,其中 |

 表示“或”)可以与绑定变量的子模式一起使用,但所有子模式都需要绑定相同的变量。


0
投票
只是我自己的 2 美分,根据

官方 Python 3 教程,在匹配情况下,您可以使用 | 将多个文字组合在一个模式中。 (“或者”)。在你的情况下,它看起来像这样:

def x(num): match num: case 1 | 2: # your codes... case 3: # your codes... case _: # This is the wildcard pattern and it never fails to match. # call your function x(6) # This will result in the wildcard pattern since case 6 isn't specified.
希望这对其他人有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.