python中如何用for語句寫出從1的階乘到20的階乘的加和?

時間 2021-05-30 14:15:50

1樓:AN DASH

一句話:

eval('+'.join(['*'.join(['%s'%(i) for i in range(j)][1:]) for j in range(21)])[2:])

2樓:田怡

for i in range(1,20):

mut=1

for x in range(1,i):

mut*=x

num+=mut

3樓:

# using python 3

# v1

deffact(i

):result=1

forj

inrange(1

,i+1

):result*=j

return

result

print

(sum

(fact(i

)foriin

range(1

,21)))# v2

import

numpy

asnp

print

(sum(np

.math

.factorial(i

)foriin

np.arange(1

,21)))# v3

from

scipy.special

import

factorial

print

(factorial(np

.arange(1

,21)).

sum())

"""v4/v5 利用階乘之間的累乘關係進行優化,如6!= 6 * 5!, 因此不需要重複計算每個數的階乘"""# v4

result=0

temp=1

fori

inrange(1

,21):temp

=temp*i

result

+=temp

print

(result

)# v5, 等價於v4

import

numpy

asnp

print(np

.cumprod

(range(1

,21)).

sum())

4樓:一袋

sum=0

forn

inrange(2

,22):k

=1form

inrange(1

,n):k

=k*m

sum=

sum+

kprint

(sum)

5樓:

如果你的意思是 的話:

sum(

functools

.reduce

(operator

.mul

,range(1

,i+1

))foriin

range(1

,21))

6樓:搞科研的蓋倫

for i in range(1,21) :

m =1

for j in range(1,i+1) :

m = m*j

n=n+m

print (n)

如何用 Python 中的 NLTK 對中文進行分析和處理?

不悔 樓主碰到的是編碼問題無疑,最簡單的解決辦法是換成Python 3.X,沒有中文的編碼問題,中文預設是Unicode。如果是Pthon 2.7,要概對中文輸入先解碼 decode 成Unicode編碼就好。 路人甲 首先答主的問題應該是編碼問題,處理一下編碼就可以了。再者Python做中文分詞有...

Python迴圈語句for i in range 這個不大清楚,怎麼回事吖?

王王韋王奇 要理解好python的for語句,就需要先知道列表這個資料型別。列表其實很簡單,就是乙個中括號裡面有一大堆資料,比如classes Chinese English Math 當你想對這個列表中的每乙個資料進行處理的時候,就需要使用for語句了 for class in classes p...

如何用python控制arduino?

FLAGYAN Arduino板子的韌體 下位機 在自帶的IDE裡面有,路徑Examples Firmata StandardFirmata,寫入這個韌體就可以在PC上寫python的程式直接控制,python直接執行在PC上,通過frimata協議給板子發命令執行相應的操作。 許俊彬 Arduin...