python之 利用字典與函式實現switch case功能
Python不像C/C++,Java等有switch-case的語法。不過其這個功能,比如用Dictionary以及lambda匿名函式特性來替代實現。
字典+函式實現switch模式下的四則運算:(switch 下運算子只用判斷一次,不同於 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)
-- 執行情況
[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
-- 執行情況
[root@bigdata01 ~]# python t2.py
9
18
-3
0
總結: 利用 python 字典中的 key > 相當於 其他語言中的 switch,python 字典中 value 呼叫 對應函式 > 相當於 其他語言中的 case
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2148499/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python如何使用字典實現switchPython
- 利用指標實現strncmp函式功能指標函式
- Python在類中實現swith case功能Python
- 13、MySQL Case-MySQL分析函式實現MySql函式
- Case表示式與decode()函式函式
- 利用樹形查詢實現部分分析函式功能函式
- 03 shell程式設計之case語句與函式程式設計函式
- Java switch caseJava
- Python的字典、集合和函式Python函式
- 開心檔之Java switch case 語句Java
- c# tcbs之switch多分支case示例C#
- switch的python實現Python
- Python基礎之openpyxl如何實現vlookup函式Python函式
- 第十二天 Python之字典遍歷-集合-函式Python函式
- Python中內建的字典函式Python函式
- python字典鍵的特性及字典內建函式&方法Python函式
- 利用標準I/O函式,實現兩個檔案的複製功能函式
- 利用 PHP 反射實現內建函式文件PHP反射函式
- JS 利用高階函式實現函式快取(備忘模式)JS函式快取模式
- Python實現建立字典Python
- Python 字典實現原理Python
- python 實現有序字典Python
- Effective c++(筆記)----類與函式之實現C++筆記函式
- 不使用日期函式實現ADD_MONTHS函式功能函式
- oracle的case函式和case控制結構Oracle函式
- switch case 的 expected expressionExpress
- Go語言 - switch/caseGo
- switch_case練習
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 不使用日期函式實現ADD_MONTHS函式功能(二)函式
- C#函式實現的小功能集合C#函式
- Golang之不可重入函式實現Golang函式
- 在Delphi與C++之間實現函式與物件共享 (轉)C++函式物件
- python之 序列與字典遍歷Python
- 利用Python+Redis實現分散式鎖PythonRedis分散式
- Python利用partial偏函式生成不同的聚合函式Python函式
- python中實現函式過載Python函式
- [PY3]——函式——函式註解 | 實現型別檢查功能函式型別