眾所周知, Python語言以號稱“簡潔”著稱, 但麻雀雖小, 五臟俱全, 簡潔到令人發(fā)指的Python卻并未因簡潔而影響其強(qiáng)大的功能。 拋開語言的速度, C語言上百行代碼實現(xiàn)的功能, 若使用Java語言, 或許能用一半C語言代碼量也能實現(xiàn), 但是若是使用Python實現(xiàn), 沒有夸張, 可能僅僅是寥寥數(shù)行?。?!
下面讓我們見識一下Python到底簡潔到什么程度:
- 實現(xiàn)一個Sum函數(shù)計算數(shù)組之和
其他語言實現(xiàn)實現(xiàn)求和功能, 無外乎for, while循環(huán), Python也不列外, Python可以用for循環(huán), 和while循環(huán)計算求和, 但顯然遞歸顯然能使代碼更加簡潔:
def calculate_sum(array):
if array == []:
return 0
else:
return array[0] + calculate_sum(array[1:])
data = [0, 1, 2, 3, 4]
print(calculate_sum(data))
data1 = []
print(calculate_sum(data1))
data2 = [3]
print(calculate_sum(data2))
輸出:
>>> 10
>>> 0
>>> 3
- 計算列表中元素的個數(shù)
Python中有內(nèi)置的len()函數(shù)計算列表元素的個數(shù), 但現(xiàn)在我們用遞歸的方式自己實現(xiàn)一下這個功能:
def calculate_count(array):
"""
遞歸計算數(shù)組元素的個數(shù)
:param array: 列表
:return: 返回列表元素個數(shù)
"""
if not array:
return 0
else:
return 1 + calculate_count(array[1:])
data0 = []
print(calculate_count(data0))
data1 = [3]
print(calculate_count(data1))
data2 = [3, 4, 6]
print(calculate_count(data2))
輸出:
>>> 0
>>> 1
>>> 3