一尘不染

Python中的星号艺术

python

我想用python制作这张图片!

         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

我输入了这个:

x=1
while x<10:
 print '%10s'    %'*'*x
 x=x+1

不幸的是,上面的图片似乎产生了由正确数量的点组成的东西,但是每个点星号都彼此间隔开,而不是整体上合理。

有人对我如何实现我想要的东西有聪明的主意吗?


阅读 159

收藏
2021-01-20

共1个答案

一尘不染

 '%10s'    %'*'*x

被解析为

('%10s' % '*') * x

因为%*运算符具有相同的优先级,并且从左到右分组[
docs
]。您需要添加括号,如下所示:

x = 1
while x < 10:
    print '%10s' % ('*' * x)
    x = x + 1

如果要遍历一系列数字,则使用for循环比使用while循环更惯用。像这样:

for x in range(1, 10):
    print '%10s' % ('*' * x)

for x in range(0, 10)等效for(int x = 0; x < 10; x++)于Java或C。

2021-01-20