Python:模式显示

Python:模式显示,python,nested-loops,Python,Nested Loops,我刚开始学习Python,需要帮助创建此模式: ****** ***** **** *** ** * 我目前有以下代码: base = 6 for row in range (base): for col in range (row+1): print('*', end='') print() 即: * ** *** ***

我刚开始学习Python,需要帮助创建此模式:

    ******
     *****
      ****
       ***
        **
         *
我目前有以下代码:

      base = 6
      for row in range (base):
          for col in range (row+1):
              print('*', end='')
          print()
即:

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

我觉得你把事情弄得太复杂了

base = 6

for i in range(base, 0, -1):
    print "*"*i
你会得到:

******
*****
****
***
**
*
想想你的范围是如何设置的。如果要在打印“******”之前打印“******”,需要让python知道在5之前打印6。通过倒数你的射程来做到这一点

我在这里做到了:

for i in range(base, 0, -1):

它从基数开始(设置为6),然后倒数-1,一直到零。

这里需要的是跟踪您需要多少空格,您几乎已经有了相应的代码,以及您需要多少空格。然后,对于每一行,您需要打印适当数量的
'
s和适当数量的
'*'
s。由于我的猜测是希望总宽度保持不变,因此需要
x
s的数量和
n-x
s的数量,其中
n
是所需的行数/总宽度

比如说

n=6; print('\n'.join(' '*x+'*'*(n-x) for x in range(0,n)))
会有用的


但是,如果这是一个家庭作业问题,我建议不要提交上述解决方案。最好用标准的方式写出来。

因为这可能是一些家庭作业或@cge上面指定的内容,我只希望两年的时间差就足够了,我写这个答案是为了告诉很多人在Python中不太了解的东西

或C++,很容易用Java语言编写的模式。但是,在思考如何在Python中创建这样的模式时,我想到了同样的事情,因为在使用Python时,print()函数会在每次使用时更改行。因此,没有一个特性像Java中的print和println是两个不同的东西

现在有一件有趣的事情要知道。在Python3中,随着print作为一种方法的引入,它还附带了一些其他东西,这些东西也将end=“\n”作为默认值附加到它。这就是为什么在调用print函数时,它会在下一行结束。因此,我们需要做的就是不要让默认值起作用

下面是代码的工作原理:

for i in range(6):
    for x in range(6):
        if i!=0:
            print(" ",end="")
            i-=1

        else:
            print("*",end="")

    print()

因此,我们可以看到,使用打印功能的上述附加功能,我们可以按照您的要求使用和创建此类图案。

检查问题以获取线索。您的问题是什么?