菜鳥 or 老司機?寫段代碼看看吧
有的小伙伴可能用Python寫代碼已經(jīng)非常久了,可能覺得已經(jīng)是個高手了,那么看看下面這個簡單的實現(xiàn)需求,你會寫怎樣的Python代碼呢?通過你寫的代碼,應該可以大約評估下你到底是菜鳥還是一個老司機了,試試吧,如果是菜鳥,就繼續(xù)修煉吧。

1、問題說明
為簡單起見,我們使用Python語言,寫一個簡單的子程序,這個子程序僅接收一個輸入?yún)?shù),當輸入?yún)?shù)為數(shù)字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代碼針對題目要求都能得到正確的結果,但大家有沒有發(fā)現(xiàn)他們的區(qū)別之處?看出菜鳥與老司機的區(qū)別了么?
可能大部分人寫的都是第1段代碼的形式。
很明顯,相比于第1段代碼,第2段用字典結構代替了多重的if-elif-else結構,將多種選擇情況放在了數(shù)據(jù)表里面,做到了數(shù)據(jù)與邏輯代碼的完全分離,要更簡潔明了,并且在擴充性方面要好的多。
如果你能自然而然地在第一時間就寫出了第2段代碼,那么恭喜你,你基本上已經(jīng)脫離了新手的范疇而進入了老司機的圈子了。
新手到老司機僅有一步之遙,努力吧。。。。。