Python 教程之控制流(9)Python 中的 Switch Case(替换)

简介: Python 教程之控制流(9)Python 中的 Switch Case(替换)

在本文中,我们将尝试理解 Python 中的 Switch Case(替换)。


Python中Switch Case的替代品是什么?

与我们之前使用的所有其他编程语言不同,Python 没有 switch 或 case 语句。为了绕过这个事实,我们使用字典映射。


方法一:使用字典映射在 Python 中实现 Switch Case

在 Python 中,字典是数据值的无序集合,可用于存储数据值。与每个元素只能包含一个值的其他数据类型不同,字典还可以包含键:值对。当我们用字典代替 Switch case 语句时,字典数据类型的键值作为 switch 语句中的 case 起作用。

# 将数字转换为字符串 Switcher 的函数在这里是字典数据类型
def numbers_to_strings(argument):
  switcher = {
    0: "zero",
    1: "one",
    2: "two",
  }
  # 字典数据类型的 get() 方法返回传递参数的值,如果它存在于字典中,否则第二个参数将被分配为传递参数的默认值
  return switcher.get(argument, "nothing")
# 驱动程序
if __name__ == "__main__":
  argument=0
  print (numbers_to_strings(argument))


方法二:使用 if-else 在 Python 中实现 Switch Case

if-else 是另一种实现 switch case 替换的方法。它用于确定是否将执行特定语句或语句块,即如果特定条件为真,是否将执行语句块。

bike = 'Yamaha'
if fruit == 'Hero':
  print("letter is Hero")
elif fruit == "Suzuki":
  print("letter is Suzuki")
elif fruit == "Yamaha":
  print("fruit is Yamaha")
else:
  print("Please choose correct answer")


方法三:在 Python 中使用 Class 实现 Switch Case

在这个方法中,我们使用一个类在 Python 中的 python switch 类中创建一个 switch 方法。

class Python_Switch:
  def day(self, month):
    default = "Incorrect day"
    return getattr(self, 'case_' + str(month), lambda: default)()
  def case_1(self):
    return "Jan"
  def case_2(self):
    return "Feb"
  def case_3(self):
    return "Mar"
my_switch = Python_Switch()
print(my_switch.day(1))
print(my_switch.day(3))

输出:

Jan
mar

Python中的切换案例

在Python 3.10及之后,Python 将通过使用match代替 switch 来支持这一点:

def number_to_string(argument):
  match argument:
    case 0:
      return "zero"
    case 1:
      return "one"
    case 2:
      return "two"
    case default:
      return "something"
if __name__ = "__main__":
  argument = 0
  number_to_string(argument)

它类似于 C++ 、Java等中的 switch case。


如果你发现本文有什么问题,欢迎在评论区指正。最后,不要忘了❤或📑支持一下哦,你的支持是海海更新的动力!关注我后面会持续分享面试经验 & 前端相关的专业知识。

目录
相关文章
|
3天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
30 8
|
3天前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
22 7
|
3天前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
22 4
|
3天前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
20 5
|
27天前
|
Python
SciPy 教程 之 Scipy 显著性检验 9
SciPy 教程之 Scipy 显著性检验第9部分,介绍了显著性检验的基本概念、作用及原理,通过样本信息判断假设是否成立。着重讲解了使用scipy.stats模块进行显著性检验的方法,包括正态性检验中的偏度和峰度计算,以及如何利用normaltest()函数评估数据是否符合正态分布。示例代码展示了如何计算一组随机数的偏度和峰度。
24 1
|
27天前
|
BI Python
SciPy 教程 之 Scipy 显著性检验 8
本教程介绍SciPy中显著性检验的应用,包括如何利用scipy.stats模块进行显著性检验,以判断样本与总体假设间的差异是否显著。通过示例代码展示了如何使用describe()函数获取数组的统计描述信息,如观测次数、最小最大值、均值、方差等。
27 1
|
28天前
|
Python
SciPy 教程 之 Scipy 显著性检验 6
显著性检验是统计学中用于判断样本与总体假设间是否存在显著差异的方法。SciPy的scipy.stats模块提供了执行显著性检验的工具,如T检验,用于比较两组数据的均值是否来自同一分布。通过ttest_ind()函数,可以获取两样本的t统计量和p值,进而判断差异是否显著。示例代码展示了如何使用该函数进行T检验并输出结果。
26 1
|
2月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
306 13
|
2月前
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
40 8
|
2月前
|
数据可视化 API 数据处理
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
133 5