python 2.7.15中的反向三角形

时间:2018-08-13 21:31:19

标签: python

我正在尝试在python 2.7.15中创建一个反向三角形,如下所示:

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

到目前为止,我的代码是这样:

for x in range (1,11):
    for spaces in range (1,11-x):
        print " ",

    for y in range (1, x+1):
        print "*",
    print 

但是它吐出了这个三角形:

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

我如何使python反转?

1 个答案:

答案 0 :(得分:1)

如果这是您的预期输出,则可以执行以下操作:

for i in range(10, 0, -1):
    print('*' * i)

在python 2中,就像你在的一样:

for i in range(10, 0, -1):
    print '*' * i

可以缩写为:

print(*('*' * i for i in range(10, 0, -1)), sep='\n')

...将每行解压缩为单个打印功能,并在每行之间添加新行。此缩短的版本仅适用于Python3。 (如果可能,我还建议升级到python 3)

其背后的想法如下:

  1. 可以复制字符串以复制它们
  2. 每行都是重复的*
  3. 所以...使用反向范围:`range(10,0,-1)以获得每一行的减少量
  4. 每次将字符串*乘以范围内的数字。