Python 中的 switch 语句

Muhammad Waiz Khan 2023年1月30日 2021年3月21日
  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