Python 中的 switch 语句

Muhammad Waiz Khan 2023年1月30日
  1. 使用字典实现 switch 语句
  2. 使用 if...elif...elseif ... else 语句实现 Switch 语句
Python 中的 switch 语句

本教程将演示在 Python 中实现 switch 语句功能的各种方法。在许多编程语言中,switch 语句用于控制程序流,或者换句话说,根据变量或表达式的值执行哪些代码块。

与 C,C++,C# 和 JAVA 等编程语言不同,Python 语言不提供 switch 语句。但是我们可以使用以下方法代替 Python 中的 switch 语句。

使用字典实现 switch 语句

Python 中的字典数据类型用于将数据集合存储为键:值对。它是可变的或可变的数据类型,并且不允许重复的值。

像在 switch 语句中一样,我们根据变量的值决定要运行的代码。我们可以使用字典中的键:值对,其中将是变量的值,而将是函数的名称。我们可以根据值执行相应的函数。

假设我们有一个变量 x,它的值决定代码的执行,我们可以将 key:value 对保存在字典中,如 0:function11:function2 等,其中 01 是字典的值。为了防止代码出错,我们可以使用 dict.get(key, default) 方法,并在函数名中传递 default 值(如果提供了未知的 x 值)。

下面的示例代码演示了如何使用字典数据类型在 Python 中实现 switch 语句功能:

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


def function3():
    print("function 3 was executed")


switch = {1: function1, 2: function2, 3: function3}

x = 1
switch.get(x, function1)()
x = 2
switch.get(x, function1)()

输出:

function 1 was executed
function 2 was executed

如果我们想根据变量 x 的值对另一个变量 a 的值执行某些操作,我们可以这样做,如下面的示例代码所示:

switch = {1: lambda a: a + 1, 2: lambda a: a + 2, 3: lambda a: a + 3}

x = 2
a = 10
print(switch[x](a))
x = 1
a = 4
print(switch[x](a))

输出:

12
5

使用 if...elif...elseif ... else 语句实现 Switch 语句

如果我们需要处理两种以上的情况,则使用 if...elif...else 语句,而 if ... else 语句用于处理两种可能性或情况。

如果我们有两个可能的代码来表示 x 的值,则可以使用 if ... else 来代替 switch 语句;如果我们有两个以上的代码,则可以使用 if...elif...else 语句或针对 x 的多个值执行的函数。

以下示例代码演示了如何在 Python 中使用 if ... else 语句实现 switch 语句功能:

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


x = 3

if x == 1:
    function1()
else:
    function2()

输出:

function 2 was executed

我们可以使用 if...elif...else 语句来实现 switch 语句,以处理多种情况,如以下示例代码所示:

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


def function3():
    print("function 3 was executed")


x = 2
if x == 1:
    function1()
elif x == 2:
    function2()
elif x == 3:
    function3()

输出:

function 2 was executed

相关文章 - Python Keyword