Python for循环打印三角形

时间:2015-04-12 21:49:35

标签: python for-loop

我的教授给了我这段代码,并打印了一个* s的三角形:

def printTriangle(size):
   for i in range(0,size):
      for j in range(0,i+1):
         print "*",
      print

这是我尝试编码三角形的倒数的尝试失败:

def printInvertedTriangle(size):
   for i in range(size,0):
       for j in range(size,i-1):
           print "*",
       print

我尝试了很多不同的方法,但这就是我认为它应该是的方式,并且它只在程序结束前给我空白。

我的理解是这就是他的作品:

for i in range(start,finish):
    for j in range(start,step):
        print "*",
    print

任何人都可以向我解释为什么我的教授给我的第一块作品,以及为什么我的打印空白区?我想到我理解他的循环;那我在做什么错了?它应该是什么样的?我想要一些基于他的for循环的东西。他违反了我在Python教程中所阅读的内容,因为他只有(开始,步骤),而教程说它是(开始,停止,步骤)。

我开始使用JS进行编程,并认为一些简单的Python循环可以在公园散步......

非常感谢任何帮助! #noob

3 个答案:

答案 0 :(得分:0)

您的脚本没有输出任何内容的原因是您的范围无效。

正如我们在翻译中看到的那样:

>>> range(10,0)
[]

输出一个空列表。

实现目标的一种方法是使用reversed()内置来反转列表。

   for i in reversed(range(0,size)):
      for j in range(0,i+1):

为了将来的帮助,请尝试更多地使用解释器来检查事物的输出。

你可以在交互模式下打开任何python模块,它运行程序,然后让你使用解释器。

python -i script.py

答案 1 :(得分:0)

def printInvertedTriangle(size):
    **for i in range(size,0):**
           for j in range(size,i-1):
               print "*",
           print

我认为显示空白区域的错误是第二行的结果。由于此索引计算了遍历行的次数,因此需要通过x(大小)范围内的x迭代次数进行计算。

在第二个for循环中,当行从1增加到2到3 ......等时使用变量i和max(size)来构建反向三角形。

试试这个:

def printReverseTriangle(size):
    for i in range(0,size):
        for j in range(i,size):
            print "*",
        print

答案 2 :(得分:0)

这是我必须为周末作业制作的一个程序。它也提供了相当不错的反向三角形。

def reverse_triangle(n):
    r=n/2+1
    for i in range(r-1,0,-1):
            print" "*(r-i)," *"*i
def main():
    n=input('Enter the size=')
    reverse_triangle(n)
main()

注意:在这个位" *"*i中,我将空格放在星号之前,因为如果没有添加空格,我的PC版本的Python 2.7不能对称地打印模式。您可以尝试使用空间或没有它,并检查它是否适合您。