1. 打印四边形
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
如图:四边形由宽和高构成,将宽转换为每行打印的的个数,将高转换为打印的行数
def quadrangle_generate(width,hight):
for i in range(hight+1):
for j in range(width+1):
print('*',end=' ')
if j == width:
print()
quadrangle_generate(5,4)
解析:for i in range(hight+1)循环保证打印的行数,for j in range(width+1)循环保证每行打印的*个数。当打印完成,即j == width的时候换行
2. 打印等腰三角形
左下角等腰三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
如图:左下角三角形由*和空格构成,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印一个*,剩下的用空格代替
第二行保留打印两个*,剩下用空格代替
第i行,打印i个星
第n行,打印n个星
def left_down_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(i+1):
print('*',end = ' ')
if j == i:
print()
left_down_Isosceles_trigal_generate(10)
解析:for i in range(n+1)保证了打印的行数(等腰三角形的腰),for j in range(i+1)循环保证每行打印的*个数,第1行打印1个,第二行打印2个,j==i的时候打印换行。
左上角等腰三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*
如图:左上角等腰三角形是由三角形由*和空格构成,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印n个*
第二行保留打印n-1两个*
第i行,打印n-i+1个*
第n行,打印1个*
因此打印的*个数使用n-i+1来确定
def left_top_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(n-i+1):
print('*',end = ' ')
if j ==n-i:
print()
left_top_Isosceles_trigal_generate(10)
解析:for i in range(n+1)保证了打印的行数,for j in range(n-i+1)保证了打印的*个数,当每行打印结束的时候使用j==n-i换行
右下角等腰三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
如图:右下角等腰三角形,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印n-1个空格,加上1个*
第二行保留打印n-2个空格,加上2个*
第i行,打印n-i个个空格,加上i个*
第n行,打印n个*
因此打印的*个数使用i来确定,打印的空格使用n-i+1来确定
def right_down_Isosceles_trigal_generate(n): for i in range(n+1): for j in range(n-i+1): print(' ',end = ' ') for k in range(i+1): print('*',end = ' ') if k ==i: print() right_down_Isosceles_trigal_generate(10)
右上角等腰三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*
如图:右上角等腰三角形,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印n个*,前面填充0个空格
第二行保留打印n-1个*,前面填充1个空格
第i行,打印n-i个*,前面填充i个空格
第n行,打印1个*,前面填充n-1个空格
因此打印的*个数使用n-i来确定,打印的空格使用i来确定