20190103-打印各种类型的三角形,四边形等

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来确定




 



猜你喜欢

转载自www.cnblogs.com/hyj691001/p/10212234.html
今日推荐