以下三種方式分別採用了不同的方法,第一種是最容易理解的,第二種是最pythonic的,而第三種則是易用性最高的。第三種直接定義乙個階乘函式,隨時都可以呼叫,從而得到不同值。
普通方法:
a =
1n =
5for i in
range(1
,n+1):
a = a * i
print
(a)20
reduce()函式:
from functools import
reduce
n =5
print
(reduce
(lambda x,y:x*y,
range(1
,n+1))
)120
reduce(function, iterable[, initializer]) 函式會對引數序列中元素進行累積。
函式將乙個資料集合(鍊錶,元組等)中的所有資料進行下列操作:用傳給 reduce 中的函式 function(有兩個引數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個資料用 function 函式運算,最後得到乙個結果。
>>
>
def add(x, y)
:# 兩數相加..
.return x + y
>>
>
reduce
(add,[1
,2,3
,4,5
])# 計算列表和:1+2+3+4+5
15>>
>
reduce
(lambda x, y: x+y,[1
,2,3
,4,5
])# 使用 lambda 匿名函式
15
注意:在 python3 中,reduce() 函式已經被從全域性名字空間裡移除了,它現在被放置在 fucntools 模組裡,如果想要使用它,則需要通過引入 functools 模組來呼叫 reduce() 函式
採用函式的遞迴:
def
factorial
(n):
if n ==
0or n ==1:
return
1else
:return
(n*factorial(n-1)
)a = factorial(5)
print
(a)120
需要注意的是,函式的遞迴要有終止機制,否則會一直遞迴下去。如上個程式中給定了if判斷語句來終止迴圈的進行。 json三種實現方式
size large 使用ajax的開發專案過程中,經常需要將json格式的字串返回到前端,前端解析成js物件 json ecma 262 e3 中沒有將json概念寫到標準中,還好在 ecma 262 e5 中json的概念被正式引入了,包括全域性的json物件和date的tojson方法。1,e...
cmdb實現三種方式
為什麼要做cmdb?1 實現運維自動化,cmdb是實現運維自動化的基石 2 之前做資產統計的時候,使用execl來統計,為了年底資產審計方便 3 運維日常工作繁瑣,4 執行環境不統一 agent方式實現 agent方式,可以將伺服器上面的agent程式作為定時任務,定時將資產資訊提交到指定api錄入...
https實現三種方式
單個ecs,新增網域名稱證書 公網 私有 並新增跳轉https 負載均衡 upstream web cluster server server web cluster server server 1 公網證書 2.需要slb新增證書,將slb的80埠刪除 3.為slb配置基於https的訪問 4.將...