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。


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

目录
相关文章
|
12天前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
6天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
28 5
|
15天前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
20天前
|
数据采集 数据可视化 Ruby
GitHub星标破万!Python学习教程(超详细),真的太强了!
Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。 Python 的设计哲学之一就是简单易学,体现在两个方面: 1. 语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。 2. 切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
|
14天前
|
Unix Python
python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
8 0
|
15天前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
15天前
|
Linux Shell 数据库
python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装、基本命令、视图与网站
|
4月前
|
存储 安全 API
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
130 0
|
4月前
|
机器学习/深度学习 数据采集 C++
【Python 基础教程 07】全面掌握Python3数字操作:入门到精通的实用指南
【Python 基础教程 07】全面掌握Python3数字操作:入门到精通的实用指南
128 2
|
4月前
|
Linux 数据库连接 C++
【Python 基础教程 23】Python3 错误与异常处理全面指南:从入门到精通的实用教程
【Python 基础教程 23】Python3 错误与异常处理全面指南:从入门到精通的实用教程
285 0