人生苦短,我用python趋厉!
本文將介紹三種使用python實現(xiàn)生成金字塔的方法伤靠,文末歸納了知識點。
- python版本:3.7.3
1. 方法一:普通print
n= 10
for i in range(n):
a = n - i
b = 2 * i + 1
for j in range(a):
print(' ', end='')
for k in range(b):
print('*',end='')
print('')
本方法使用print打印出每一個字符故觅,通過for循環(huán)計算每一次需要輸出的空格和星號。
print語句中渠啊,end=''表示不換行输吏。
2. 方法二:輸出數(shù)字格式
import math
n = 10
m = 0
for i in range(n):
a = n - i
m += pow(10,i)
for j in range(a):
print(' ', end='')
print(pow(m,2))
本方法利用了一個有趣的規(guī)律:
12=1
112=121
1112=12321
11112=1234321
在程序中表達為 m += pow(10,i) ,即 m = m + pow(10,i) 替蛉,例如:
當 i = 2 時贯溅,
m = m0 + m1 + m2
通過運行我們發(fā)現(xiàn)輸出數(shù)字的時候,由于每行數(shù)字是一次性輸出灭返,而非每個數(shù)字輸出一次盗迟,相比方法一效率有了提升。
pow(10,i) 表示 10i 熙含。
3. 方法三:效率優(yōu)化
import math
n = 10
m = 0
b = ' '
for i in range(n):
a = n - i
m += pow(10,i)
print(b*a,pow(m,2))
本方法在方法二的基礎(chǔ)上再次改進空格的輸出方式,print(b*a)語句中艇纺,a表示輸出的次數(shù)怎静。
當我把層數(shù)n設(shè)置為100的時候,發(fā)生了壯觀的一幕黔衡,感興趣的朋友歡迎自己試試蚓聘。
知識點歸納
for 循環(huán)的語法格式如下[1]:
for iterating_var in sequence:
statements(s)
文中同時使用了 range 數(shù)列,range[10] 表示:0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 盟劫。
for i in range(10):
print(i)
print 語法[2]
以下是 print() 方法的語法:
print(*objects, sep=' ', end='\n', file=sys.stdout)
參數(shù)
objects -- 復數(shù)夜牡,表示可以一次輸出多個對象。輸出多個對象時侣签,需要用 , 分隔塘装。
sep -- 用來間隔多個對象,默認值是一個空格影所。
end -- 用來設(shè)定以什么結(jié)尾蹦肴。默認值是換行符 \n,我們可以換成其他字符串猴娩。
file -- 要寫入的文件對象阴幌。
pow方法[3]
pow() 方法返回 xy(x的y次方) 的值勺阐。語法為:
import math
math.pow( x, y )
數(shù)字回文、數(shù)字金字塔[4]
參考文獻:
[1] Python for 循環(huán)語句
[2] Python print() 函數(shù)
[3] Python pow() 函數(shù)
[4] Number Pyramid
?版權(quán)所有矛双,轉(zhuǎn)載請注明出處渊抽。