泰酷啦|在python编译器上打印出各种三角形和菱形

Python
194
0
0
2024-04-11
标签   Python实践

     三角形类型

  • 直角右下角的三角形

印以下图形    

审题:

 通过计算"*"的个数可以发现每一行依次递增1个"*"

 根据"*"个数和空格个数的关系可以设它的行数为i,则每一行有:

 i个"*",则每一行有(10-i)个空格

在python中 用代码表示:

 方法一:

for i in range(10):
    print(" " * (10- i)+"*" * (i))

方法二:

分别用两次for循环进行空格和星号的遍历打印

for i in range(10):
    print(" " * (9- i), end=" ")//根据星号和1空格元素数量之和为10进行打印
    print("*" * (i + 1))

直角右上角的三角形

 根据星号和空格数量关系

for i in range(10):
    print("*" * (10-i))
    print(" " * (i),end=" ")

直角左下角的三角形

for i in range(10):
    print("*" * (i+1),end=" ")
    print(" " * (10-i))

直角左上角的三角形

for i in range(10):
    print("*" * (10-i),end=" ")
    print(" " * (i+1))

等腰三角形


for i in range(10):
    print(" " * (9-i),end=" ")
    print("*" * (2*i+1))

等边三角形


for i in range(10):
    print(" " * (9- i),end=" ")
    print(" *" * (i))

菱形


 方法一:

for i in range(0,10):#通过for循环循环10次按照图片中的规律打印出星号和空格组成上三角形
    print(' '*(10-i)+'*'*(2*i+1))
for i in range(2,11):
    #代码中循环的起始值为2,是因为在这个倒立的菱形图案中,最上面一行只有2个空格。
    # 如果从1开始循环,那么最上面一行将不会有空格。
    print(' '*i + '*'*(21-i*2))
    #通过观察可以发现,空格的数量和星号的数量之和始终为21。
    # 这是因为在这个倒立的菱形图案中,每行的字符总数是固定的,而且空格和星号的数量是相互关联的。
    # 当 i 增加时,空格的数量增加,星号的数量减少,保持总数不变。因此,可以通过 21-i*2 计算出每行星号的数量。

方法二:循环语句和条件判断语句相结合

for i in range(0,21):
    if i <=10:
        print(' '*(10-i)+'*'*(2*i+1))
    if i >10:
        if i == 20:#如果i等于20,表示已经打印到最后一行
            print(' '*10 + '*'*1)
            break
        print(' '*(i%10) + '*'*(21-(i%10)*2))#如果i大于10且不等于20,打印一行由空格和星号组成的图形。空格的数量是i模10的结果,星号的数量是21减去空格数量的两倍。这样就形成了一个递减的倒三角形图形。