三角n x n模式程序

时间:2017-09-23 21:55:39

标签: python python-3.x debugging for-loop

这个程序应该打印一个n x n三角形图案,如下所示:

n = 6

* * * * * *
. * * * * *
. . * * * *
. . . * * *
. . . . * *
. . . . . *

但是我得到了这个:

n = 6

* * * * * *
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .

我的错误在哪里?

import sys

n = int(sys.argv[1])

def triangle(n):
    for i in range(n):
        if i == 0:
            for k in range(n):
                print('*', end=' ')
            print()
        if i > 0:
            for k in range(n):
                print('.', end=' ')
            print()

triangle(n)

3 个答案:

答案 0 :(得分:1)

不是检查循环索引,而是使用它来打印点数。然后打印n - i个星星,例如:

def triangle(n):
    for i in range(n):
        for k in range(i):
            print('.', end=' ')    
        for k in range(n-i):
            print('*', end=' ')
        print()

或者只使用乘法运算符:

def triangle(n):
    for i in range(n):
        print(*["."]*i + ["*"]*(n-i), sep=" ")

答案 1 :(得分:0)

目前,只有当你在第一行并且每隔一行都有点时,你才会打印星星。你需要在每一行打印点和星星,增加点数和减少星星:

def triangle(n):
    for i in range(n):
        for k in range(i):
            print('.', end=' ')

        for k in range(n - i):
            print('*', end=' ')

        print()

答案 2 :(得分:0)

试试这个 它很简单

count = 0
count2 = 5
while count2 >= 1:
    for i in range(count):
        print(".", end = " ")
    for i in range(count2):
        print("*", end = " ")
    print()
    count = count + 1
    count2 = count2 - 1