total?=?1
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)環(huán)縣,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
for?num?in?range(1,101):
if?num?%?2?==?0:
total?=?total?*?num
print(total)?
#其實一樓答案基本都對了,就是range默認(rèn)是從0開始的,
#而0對2的求余也是0,所以答案永遠(yuǎn)是0,設(shè)置一個開始值為1,或者2就行了
第一種:普通的for循環(huán)
第二種:reduce()函數(shù)
第三種:factorial()函數(shù)
第四種:遞歸調(diào)用
以下提供兩種方法 供參考,第一種方式為自己構(gòu)造求階乘的函數(shù),第二種則直接使用了Python標(biāo)準(zhǔn)庫,代碼如下:
一、
自己構(gòu)造階乘函數(shù)
from functools import reduce
def factorial(n):
l = range(1,n+1)
result = reduce(lambda x,y:x*y,l)
return result
for i in range(1,6): print('{}! = {}'.format(i, factorial(i)))
二、
Python標(biāo)準(zhǔn)庫
from math import factorial
for i in range(1,6):
print("{}! = {}".format(i,factorial(i)))
兩段程序輸出一樣,如下: