⑴ python中如何用for語句寫出從1的階乘到20的階乘的加和
def sum_factorial(start, stop):
# 遞歸求階乘
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
# 生成器解析式生成各個數的階乘,然後再求和
return sum(factorial(i) for i in range(start, stop+1))
# 調用函數,測試代碼
print(sum_factorial(1, 20))
在不調用庫的情況下,最容易想到的就是循環裡面套循環,不過這樣子佔用時間為O(n^2)。當然你這里也就n=20,兩層循環沒啥問題,不過當n足夠大時,可以考慮用演算法。
遞歸演算法佔用時間為O(n),一個for循環為O(stop+1-start),兩者相加,比兩層循環效率高,當然這也是在n足夠大的時候,才談效率。
⑵ python中算數運算符都有哪些
下表列出了所有Python語言支持的算術運算符。假設變數a持有10和變數b持有20,則:
運算符描述實例
+加法 - 對操作符的兩側加值a + b = 30
-減法 - 從左側操作數減去右側操作數a - b = -10
*乘法- 相乘運算符兩側的值a * b= 200
/除 - 由右側操作數除以左側操作數b / a = 2
%模 - 由右側操作數和余返回除以左側操作數b % = 0
**指數- 執行對操作指數(冪)的計算a**b = 10 冪為 20
//地板除 - 操作數的除法,其中結果是將小數點後的位數被除去的商。9//2 = 4 而 9.0//2.0= 4.0 例子:
試試下面的例子就明白了所有的Python編程語言提供了算術運算符:
#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Line 1 - Value of c is ", c
c = a - b
print "Line 2 - Value of c is ", c
c = a * b
print "Line 3 - Value of c is ", c
c = a / b
print "Line 4 - Value of c is ", c
c = a % b
print "Line 5 - Value of c is ", c
a = 2
b = 3
c = a**b
print "Line 6 - Value of c is ", c
a = 10
b = 5
c = a//b
print "Line 7 - Value of c is ", c
當執行上面的程序,它會產生以下結果:
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2
⑶ 利用python輸出倒置排列的九九乘法表
通過使用Python,我們可以生成一個倒置排列的九九乘法表,具體代碼如下:
for ii in range(9, 0, -1):
for jj in range(9, 0, -1):
if jj <= ii:
print('{0}*{1}={2}'.format(ii, jj, str((ii * jj)).rjust(2, ' ')), '', end='')
print('')
運行這段代碼,我們得到的結果是:
9*9=819*8=729*7=639*6=549*5=459*4=369*3=279*2=189*1=9 8*8=648*7=568*6=488*5=408*4=328*3=248*2=168*1=8 7*7=497*6=427*5=357*4=287*3=217*2=147*1=7 6*6=366*5=306*4=246*3=186*2=126*1=6 5*5=255*4=205*3=155*2=105*1=5 4*4=164*3=124*2=84*1=4 3*3=93*2=63*1=3 2*2=42*1=2 1*1=1
這樣,我們就可以得到一個從9乘9到1乘1的倒序排列的乘法表,每個乘法表達式右側補足兩位數,使得每行的格式統一。
通過這樣的方式,我們可以利用Python輕松生成各種形式的乘法表,不僅限於倒置排列,還可以生成正序排列或其他特殊排列的乘法表。
此外,這種方式也可以根據需要調整乘法表的大小,只需修改range函數中的參數即可。
總之,利用Python生成乘法表是一種非常靈活且高效的方法,可以滿足各種不同的需求。
⑷ Python編寫一個函數,求1*2*3*4...*n的乘積,編寫主程序,從鍵盤輸入一個整數,並
代碼如下:
#coding=utf-8
n=int(input('請輸入一個正整數:'))
num=1
foriinrange(1,n+1):
num=num*i
print('結果:',num)
運行結果:
⑸ python中 print "-"*20的作用
在Python中,使用字元串乘以整數是一種常見的技巧,主要用於快速生成重復的字元串序列。具體而言,當我們將一個字元串與一個整數相乘時,實際上是將該字元串重復整數次並連接在一起。比如,"-" * 20 將生成一個由20個連字元("-")組成的字元串。
因此,上述語句 "print '-' * 20" 的功能就是列印出連續20個連字元。這在需要快速生成分隔符或邊界線時非常有用,比如在輸出中分隔不同部分或創建美觀的布局。
此外,這種方法還具有簡潔性和可讀性。相比於手動編寫一個包含20個連字元的字元串,使用乘法操作更為直觀且易於維護。例如,如果需要在輸出中插入一條長的分隔線,只需簡單地調整乘數即可。
在實際編程中,這種技巧常用於日誌記錄、界面設計和數據展示等多個場景。例如,在日誌文件中,它可以用來標識不同的記錄級別;在用戶界面中,它可以用來創建清晰的分隔線,使界面更加整潔有序。
總之,利用字元串乘以整數的方法,可以快速生成重復的字元串序列,使得代碼更加簡潔、易讀且高效,特別是在需要生成分隔符或邊界線時,這種方法顯得尤為便捷。