為了用flask開發web應用,這兩天就開始看了一點點Python。還沒看到用Python寫網站后台的那部分,就被其強大的數據處理能力和語法的靈活性吸引。肯定是我少見多怪,不過看到人家靈活使用Python的這些特性,寫出一些奇技淫巧般的代碼時,忍不住大贊。下面寫一兩個例子,一來加深自己的記憶,二來贊美一下Python。(代碼借鑒了大神們的思想)
1.剔除1到1000內不是回文數的數,然后打印。
判斷一個數是不是回文數,想必學過編程的都寫過。當我還在想着取整數的每一位,再倒序加起來和原數比較是否相等時,看到了評論區大神一行代碼搞定,瘋了。。現在是在寫Python,不是Java!!貼代碼:
def is_palindrome(n): return str(n)==str(n)[::-1] output=filter(is_palindrome,range(1,1000)) print(list(output))
把整數轉成字符串,靈活使用Python的切片,倒序字符串,比較。。。搞定!
2.格式化一個list里的名字:首字母大寫,后面小寫。
又是靈活運用切片。代碼:
L1=["AdaM","sMith","JoBs","BRYANT"] def formatname(name): name=name[0].upper()+name[1:].lower() return name L2=map(formatname,L1) print(list(L2))
服!這用Java寫一下要多少行。。。不是黑我大Java,我可是Java粉。。。不過Python方便太多。
***注:filter和map是Python提供的高階函數,接收一個函數,一個列表作為參數,對列表里的每個元素,用接收的函數計算之。