Python 使用dict实现switch的操作
Python3还是没有switch,可以利用if-else来实现,但是非常不方便。使用dict来实现会比较简洁优雅。
# -*- coding: utf-8 -*-
"""
Python利用dict实现switch
"""
def add(x, y): return x + y
def subtract(x, y): return x - y
def multiply(x, y): return x * y
def divide(x, y):
assert(y != 0)
return x / y
mapping = {"+": add, "-": subtract, "*": multiply, "/": divide}
def cal(x, y, symbol="+"):
assert(symbol in mapping)
return mapping.get(symbol)(x, y)
if __name__ == "__main__":
result = cal(3, 0, "&")
补充:python 字典dict实现switch case【实际应用】(非dict.get()方法实现)
看了不少帖子,几乎都是采用字典的.get()方法实现,据说有个弊端:“会将字典每个带括号的方法都执行一遍”。
以下方法可避免该弊端,并可以传参。如有不足请指正!
#!/usr/bin/python3
# conf_cmd = conf_items["cmd"].split(":")[0]
test_no = "T1"
#test_no = "T2"
#test_no = "T3"
id = 1
def test1(id):
print("test1:%d" % id)
def test2(id):
print("test2")
def test3(id):
print("test3")
funcs = {"T1": test1,
"T2": test2,
"T3": test3}
try:
func = funcs[test_no]
func(id)
except Exception:
pass
输出:
test1:1
补充:Python实现类似switch的分支结构
switch语句相信大家都很熟悉,而且swith语句表达的分支结构比if...elif...else语句表达更清晰,代码的可读性更高,但是在Python中,却没有提供这一个关键字。那我们该如何通过其他方式来实现这类似的结构呢?
虽然没有switch语句,但是我们可以通过Python中的dict即字典来实现类似switch结构的方法
实现代码如下:
def operator(o,x,y):
result={
'+' : x+y,
'-' : x-y,
'*' : x*y,
'/' : x/y
}
print(result.get(o))
oper=input()//接收从键盘输入的数据
operator(oper,4,2)
运行效果如下所示:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Python通过requests模块实现抓取王者荣耀全套皮肤
只学书上的理论是远远不如实践带来的提升快,只有在实例中才能获得能力的提升,本篇文章手把手带你用Python实现抓取王者荣耀全套皮肤,大家可以在过程中查缺补漏,提升水平2021-10-10
pandas缺失值np.nan, np.isnan, None, pd.isnull,&n
本文主要介绍了pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna2024-04-04
selenium 安装与chromedriver安装的方法步骤
这篇文章主要介绍了selenium 安装与chromedriver安装的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-06-06


最新评论