这个程序应该打印一个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)
答案 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