溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何利用字典與函數(shù)實(shí)現(xiàn)switch case功能

發(fā)布時(shí)間:2021-10-27 17:06:46 來源:億速云 閱讀:227 作者:柒染 欄目:關(guān)系型數(shù)據(jù)庫

python如何利用字典與函數(shù)實(shí)現(xiàn)switch case功能,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

Python不像C/C++,Java等有switch-case的語法。不過其這個(gè)功能,比如用Dictionary以及l(fā)ambda匿名函數(shù)特性來替代實(shí)現(xiàn)。


字典+函數(shù)實(shí)現(xiàn)switch模式下的四則運(yùn)算:(switch 下運(yùn)算符只用判斷一次,不同于 if 、elsif 判斷)

法1:
-- 代碼
[root@bigdata01 ~]# cat t1.py 
#!/usr/bin/python
#coding:utf-8

def add(x,y):
return x+y

def sub(x,y):
return x-y

def mul(x,y):
return x*y

def div(x,y):
return x/y

operator = {"+":add,"-":sub,"*":mul,"/":div}

def f(x,o,y):
print operator.get(o)(x,y)

f(2,"+",2)
f(2,"-",2)
f(2,"*",2)
f(2,"/",2)


-- 運(yùn)行情況
[root@bigdata01 ~]# python t1.py 
4
0
4
1

法2:
-- 代碼
[root@bigdata01 ~]# cat t2.py 
def calc(type,x,y):
calculation = {'+':lambda :x+y,
'*':lambda:x-y,
'-':lambda:x*y,
'/':lambda:x/y}
return calculation[type]() 

result1 = calc('+',3,6)
result2 = calc('-',3,6)
result3 = calc('*',3,6)
result4 = calc('/',3,6)
print result1
print result2
print result3
print result4

-- 運(yùn)行情況
[root@bigdata01 ~]# python t2.py 
9
18
-3
0

 利用 python 字典中的 key > 相當(dāng)于 其他語言中的 switch,python 字典中 value 調(diào)用 對應(yīng)函數(shù) > 相當(dāng)于 其他語言中的 case

看完上述內(nèi)容,你們掌握python如何利用字典與函數(shù)實(shí)現(xiàn)switch case功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI