服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 菜鸟 or 老司机?写段代码看看吧

菜鸟 or 老司机?写段代码看看吧

2020-11-09 23:02今日头条编码那些事 编程技术

有的小伙伴可能用Python写代码已经非常久了,可能觉得已经是个高手了,那么看看下面这个简单的实现需求,你会写怎样的Python代码呢?通过你写的代码,应该可以大约评估下你到底是菜鸟还是一个老司机了,试试吧,如果是菜鸟,

有的小伙伴可能用Python写代码已经非常久了,可能觉得已经是个高手了,那么看看下面这个简单的实现需求,你会写怎样的Python代码呢?通过你写的代码,应该可以大约评估下你到底是菜鸟还是一个老司机了,试试吧,如果是菜鸟,就继续修炼吧。

菜鸟 or 老司机?写段代码看看吧

1、问题说明

为简单起见,我们使用Python语言,写一个简单的子程序,这个子程序仅接收一个输入参数,当输入参数为数字1、2、3、4、5时,打印出其对应的英文单词即one、two、three、four、five等单词,当输入为其它值时,打印出提示信息:“input error!”。

这应该是个非常简单的问题,看看下面两段代码吧。

2、代码段1

先看下第一部分代码,这应该是大部分小伙伴在第一时间想到的代码吧:

def myPrint1(val): 

    if val == 1: 

        print('one'

    elif val == 2: 

        print('two'

    elif val == 3: 

        print('three'

    elif val == 4: 

        print('four'

    elif val == 5: 

        print('five'

    else

        print('input error!'

 

myPrint1(5) 

3、代码段2

再看下另一段代码:

def myPrint2(val): 

    d = { 

        1: 'one'

        2: 'two'

        3: 'three'

        4: 'four'

        5: 'five'

    } 

    if val in d: 

        print(d[val]) 

    else

        print('input error!'

 

myPrint2(5) 

4、菜鸟 or 老司机?

这两段Python代码针对题目要求都能得到正确的结果,但大家有没有发现他们的区别之处?看出菜鸟与老司机的区别了么?

可能大部分人写的都是第1段代码的形式。

很明显,相比于第1段代码,第2段用字典结构代替了多重的if-elif-else结构,将多种选择情况放在了数据表里面,做到了数据与逻辑代码的完全分离,要更简洁明了,并且在扩充性方面要好的多。

如果你能自然而然地在第一时间就写出了第2段代码,那么恭喜你,你基本上已经脱离了新手的范畴而进入了老司机的圈子了。

新手到老司机仅有一步之遥,努力吧。。。。。

延伸 · 阅读

精彩推荐