Python3還是沒有switch,可以利用if-else來實現(xiàn),但是非常不方便。使用dict來實現(xiàn)會比較簡潔優(yōu)雅。
# -*- coding: utf-8 -*- """ Python利用dict實現(xiàn)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實現(xiàn)switch case【實際應(yīng)用】(非dict.get()方法實現(xiàn))
看了不少帖子,幾乎都是采用字典的.get()方法實現(xiàn),據(jù)說有個弊端:“會將字典每個帶括號的方法都執(zhí)行一遍”。
以下方法可避免該弊端,并可以傳參。如有不足請指正!
#!/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實現(xiàn)類似switch的分支結(jié)構(gòu)
switch語句相信大家都很熟悉,而且swith語句表達(dá)的分支結(jié)構(gòu)比if...elif...else語句表達(dá)更清晰,代碼的可讀性更高,但是在Python中,卻沒有提供這一個關(guān)鍵字。那我們該如何通過其他方式來實現(xiàn)這類似的結(jié)構(gòu)呢?
雖然沒有switch語句,但是我們可以通過Python中的dict即字典來實現(xiàn)類似switch結(jié)構(gòu)的方法
實現(xiàn)代碼如下:
def operator(o,x,y): result={ '+' : x+y, '-' : x-y, '*' : x*y, '/' : x/y } print(result.get(o)) oper=input()//接收從鍵盤輸入的數(shù)據(jù) operator(oper,4,2)
運行效果如下所示:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
標(biāo)簽:湖州 衡水 股票 駐馬店 中山 呼和浩特 江蘇 畢節(jié)
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 使用dict實現(xiàn)switch的操作》,本文關(guān)鍵詞 Python,使用,dict,實現(xiàn),switch,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。