最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 使用dict實(shí)現(xiàn)switch的操作

 更新時(shí)間:2021年04月07日 14:46:39   作者:KeeJee  
這篇文章主要介紹了Python 使用dict實(shí)現(xiàn)switch的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

Python3還是沒有switch,可以利用if-else來實(shí)現(xiàn),但是非常不方便。使用dict來實(shí)現(xiàn)會比較簡潔優(yōu)雅。

# -*- coding: utf-8 -*-
"""
Python利用dict實(shí)現(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, "&")

補(bǔ)充:python 字典dict實(shí)現(xiàn)switch case【實(shí)際應(yīng)用】(非dict.get()方法實(shí)現(xiàn))

看了不少帖子,幾乎都是采用字典的.get()方法實(shí)現(xiàn),據(jù)說有個(gè)弊端:“會將字典每個(gè)帶括號的方法都執(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

補(bǔ)充:Python實(shí)現(xiàn)類似switch的分支結(jié)構(gòu)

switch語句相信大家都很熟悉,而且swith語句表達(dá)的分支結(jié)構(gòu)比if...elif...else語句表達(dá)更清晰,代碼的可讀性更高,但是在Python中,卻沒有提供這一個(gè)關(guān)鍵字。那我們該如何通過其他方式來實(shí)現(xiàn)這類似的結(jié)構(gòu)呢?

雖然沒有switch語句,但是我們可以通過Python中的dict即字典來實(shí)現(xiàn)類似switch結(jié)構(gòu)的方法

實(shí)現(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)

運(yùn)行效果如下所示:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Python通過requests模塊實(shí)現(xiàn)抓取王者榮耀全套皮膚

    Python通過requests模塊實(shí)現(xiàn)抓取王者榮耀全套皮膚

    只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不如實(shí)踐帶來的提升快,只有在實(shí)例中才能獲得能力的提升,本篇文章手把手帶你用Python實(shí)現(xiàn)抓取王者榮耀全套皮膚,大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-10-10
  • 詳解Python中的from..import絕對導(dǎo)入語句

    詳解Python中的from..import絕對導(dǎo)入語句

    絕對導(dǎo)入其實(shí)非常簡單,即是用from語句在import前指明頂層package名,下面我們通過兩個(gè)例子來詳解Python中的from..import絕對導(dǎo)入語句
    2016-06-06
  • python寫入文件如何取消自動換行

    python寫入文件如何取消自動換行

    這篇文章主要介紹了python寫入文件如何取消自動換行問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python+numpy按行求一個(gè)二維數(shù)組的最大值方法

    python+numpy按行求一個(gè)二維數(shù)組的最大值方法

    今天小編就為大家分享一篇python+numpy按行求一個(gè)二維數(shù)組的最大值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna

    pandas缺失值np.nan, np.isnan, None, pd.isnull,&n

    本文主要介紹了pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna
    2024-04-04
  • python入門課程第五講之序列和字符串

    python入門課程第五講之序列和字符串

    這篇文章主要介紹了python入門課程第五講之序列和字符串,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python PrettyTable模塊的安裝與簡單應(yīng)用

    python PrettyTable模塊的安裝與簡單應(yīng)用

    prettyTable 是一款很簡潔但是功能強(qiáng)大的第三方模塊,主要是將輸入的數(shù)據(jù)轉(zhuǎn)化為格式化的形式來輸出,這篇文章主要介紹了python PrettyTable模塊的安裝與簡單應(yīng)用,感興趣的小伙伴們可以參考一下
    2019-01-01
  • bluepy 一款python封裝的BLE利器簡單介紹

    bluepy 一款python封裝的BLE利器簡單介紹

    這篇文章主要介紹了bluepy 一款python封裝的BLE利器簡單介紹,bluepy 是github上一個(gè)很好的藍(lán)牙開源項(xiàng)目, 其主要功能是用python實(shí)現(xiàn)linux上BLE的接口。,需要的朋友可以參考下
    2019-06-06
  • 自動化測試Pytest單元測試框架的基本介紹

    自動化測試Pytest單元測試框架的基本介紹

    這篇文章主要介紹了Pytest單元測試框架的基本介紹,包含了Pytest的概念,Pytest特點(diǎn),其安裝流程步驟以及相關(guān)配置流程,有需要的朋友可以參考下
    2021-08-08
  • selenium 安裝與chromedriver安裝的方法步驟

    selenium 安裝與chromedriver安裝的方法步驟

    這篇文章主要介紹了selenium 安裝與chromedriver安裝的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06

最新評論

年辖:市辖区| 常德市| 彭州市| 沈丘县| 秦安县| 象山县| 百色市| 海丰县| 北碚区| 邓州市| 澄迈县| 仁寿县| 张家界市| 惠水县| 永年县| 顺义区| 二手房| 班玛县| 荔波县| 无棣县| 抚松县| 贡嘎县| 都匀市| 兖州市| 云安县| 蓬莱市| 安新县| 上林县| 安达市| 和政县| 华宁县| 明溪县| 壶关县| 桑日县| 泰州市| 若尔盖县| 石首市| 宽城| 政和县| 于田县| 石狮市|