Python中的字典与C语言中的switch结构类比

50 篇文章 1 订阅

       题目中用了类比而不是对比,因为我觉得我想要的并不是他们两者之间的差异,而是想在Python中找到一种方式能够完全代替C语言中的switch结构。

       之前使用字典功能模拟switch结构的时候总觉得有点缺憾,因为自己还要构造switch的default分支的模拟逻辑。

       其实,之前真是走了弯路了。在Python中,这种方式完全没有必要。字典中的get方法中可以使用默认的参数实现对switch语句的default分支模拟。这样,当想在Python中实现一段C语言中实现过的代码就简单多了。

       下面实现一个简单的switch结构的完整模拟:

#!/usr/bin/python

 

def Func1():

       print("function 1")

      

def Func2():

       print("function 2")

      

def Func3():

       print("function 3")

      

dict_data ={1:Func1,2:Func2}

 

      

defSwitchDemo(num):

       dict_data.get(num,Func3)()

      

for i inrange(1,10):

       SwitchDemo(i

       运行的结果如下:

E:\WorkSpace\01_programme_language\03_Python\OOP>pythonswitch.py

function 1

function 2

function 3

function 3

function 3

function 3

function 3

function 3

function 3

       从上面的运行结果可以看出,成功的通过前面叙述的方式实现了把Func3作为一个默认的分支。

       写代码久了觉得最初接触的编程语言教程内容的划分还是很合理的。最初接触的教程一般是从语法、类型、条件以及循环结构、数据结构等几个方面进行内容的安排。其实,我们用程序描述现实世界问题的时候用到的也不过就是这些,在加上合适的算法,整个程序的实现方式不管用什么语言都有一个相似的套路。这样,如果在一种语言平台上能够做到纯熟,那么其他的语言或许也能够触类旁通、一通百通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值