Python 中的 switch 语句
本教程将演示在 Python 中实现 switch
语句功能的各种方法。在许多编程语言中,switch
语句用于控制程序流,或者换句话说,根据变量或表达式的值执行哪些代码块。
与 C,C++,C# 和 JAVA 等编程语言不同,Python 语言不提供 switch 语句。但是我们可以使用以下方法代替 Python 中的 switch 语句。
使用字典实现 switch 语句
Python 中的字典数据类型用于将数据集合存储为键:值
对。它是可变的或可变的数据类型,并且不允许重复的值。
像在 switch 语句中一样,我们根据变量的值决定要运行的代码。我们可以使用字典中的键:值
对,其中键
将是变量的值,而值
将是函数的名称。我们可以根据键
值执行相应的函数。
假设我们有一个变量 x
,它的值决定代码的执行,我们可以将 key:value
对保存在字典中,如 0:function1
,1:function2
等,其中 0
和 1
是字典的值。为了防止代码出错,我们可以使用 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...else
或 if ... 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