python打印星号三角形图案

1.打印一个左下三角图形

# 输出结果
*  
**  
***  
****  
*****  
******  
*******  
******** 

代码实现:

# 输入行数,打印一个左下三角图形
def triangle(row):
    mystring = '*'
    for i in range(row):
        for j in range(i+1):
            print('*',end='')
        print('')

row = int(input())
triangle(row)

这个可以说是非常简单了,就是两层循环,一层控制行,另一层控制*的个数,很容易就可以输出一个下三角。

2.打印一个右下三角图形

# 输出结果
       *
      **
     ***
    ****
   *****
  ******
 *******
********

代码实现:

# 输入行数,打印一个右下三角图形
def triangle(row):
	mystring = '*'
    for i in range(row):#行数 
        print((mystring*(i+1)).rjust(row))

row = int(input())
triangle(row)

这里其实也可以用前面的方法实现,不过我觉得有点麻烦了,所以直接使用了python的一个内置函数rjust即让字符串右对齐,设置好字符串以后直接用倍数重复输出*号就可以了,因为i在range函数中是从0开始,所以+1就好了。
因为要打印的右下三角的最后一行的星号个数刚好就是行数,所以rjust右边括号里的宽度就填上行数row了。

3.打印一个等腰三角形

# 输出结果
       *  
      ***  
     *****  
    *******  
   *********  
  ***********  
 *************  
***************

代码实现:

# 输入行数,打印一个等腰三角形
def triangle(row):
	mystring = '*'
    for i in range(row):
        print((mystring*(1+2*i)).rjust(row+i))

row = int(input())
triangle(row)

这个的话,我原本打算的是跟第二题一样,然后直接把str.rjust()换成str.center()函数就愉快地结束,结果图形是出来了,万万没想到差就差在她的这个图案的右边是没有空格的。。。而一看我的,一堆空格。。。
最后也很简单,直接还是用回rjust,每一行的右边多打印i个星号,简单了事。

小小菜鸡刚开始学python,如有不对敬请谅解,同时也欢迎指出我的错误,谢谢

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐