python如何利用字典與函數(shù)實(shí)現(xiàn)switch case功能,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、思南網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為思南等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
Python不像C/C++,Java等有switch-case的語(yǔ)法。不過(guò)其這個(gè)功能,比如用Dictionary以及l(fā)ambda匿名函數(shù)特性來(lái)替代實(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)于 其他語(yǔ)言中的 switch,python 字典中 value 調(diào)用 對(duì)應(yīng)函數(shù) > 相當(dāng)于 其他語(yǔ)言中的 case
看完上述內(nèi)容,你們掌握python如何利用字典與函數(shù)實(shí)現(xiàn)switch case功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!