打印空金字塔
Printing empty Pyramid
我想编写一个打印此输出的程序:
*
* *
* *
* *
*
但它打印的是:
*
* *
* * *
* * * *
* * * * *
假设用户输入n = 5,那么第一个星星应该在中间,最后一个星星也应该在中间,所以我可以将输入的数字除以乘以 2 得到第一颗和最后一颗星的位置。
对于其余的星星,我不明白如何做到,如果一颗星星在上面,那么下一颗星星不应该在它下面。
def Empty_triangle(n):
k = 2*n - 2
for i in range(0, n):
for j in range(0, k):
print(end=" ")
k = k - 1
for j in range(0, i+1):
# printing stars
print("* ", end="")
# ending line after each row
print("\r")
# Driver Code
n = 5
Empty_triangle(n)
这种事情怎么样?
print("\n".join([" "*(n-2-i)+"*"+" "*(2*i-1)+("*"if i>0 else"") for i in list(range(n-1))+[0]]))
例如,对于 n=5,输出为:
*
* *
* *
* *
*
这是你想要的那种东西吗?
这里有一个少代码的golfish版本
def Empty_triangle(n):
for i in list(range(n-1))+[0]: #i.e. [0,1,2,3,4,0] so the last line is the same as the first
line = ""
leadingSpaces = n-2-i
line += " "*leadingSpaces
line += "*"
if i != 0:
middleSpaces = 2*i-1
line += " "*middleSpaces
line += "*"
print(line)
# Driver Code
n = 5
Empty_triangle(n)
我想编写一个打印此输出的程序:
*
* *
* *
* *
*
但它打印的是:
*
* *
* * *
* * * *
* * * * *
假设用户输入n = 5,那么第一个星星应该在中间,最后一个星星也应该在中间,所以我可以将输入的数字除以乘以 2 得到第一颗和最后一颗星的位置。
对于其余的星星,我不明白如何做到,如果一颗星星在上面,那么下一颗星星不应该在它下面。
def Empty_triangle(n):
k = 2*n - 2
for i in range(0, n):
for j in range(0, k):
print(end=" ")
k = k - 1
for j in range(0, i+1):
# printing stars
print("* ", end="")
# ending line after each row
print("\r")
# Driver Code
n = 5
Empty_triangle(n)
这种事情怎么样?
print("\n".join([" "*(n-2-i)+"*"+" "*(2*i-1)+("*"if i>0 else"") for i in list(range(n-1))+[0]]))
例如,对于 n=5,输出为:
*
* *
* *
* *
*
这是你想要的那种东西吗?
这里有一个少代码的golfish版本
def Empty_triangle(n):
for i in list(range(n-1))+[0]: #i.e. [0,1,2,3,4,0] so the last line is the same as the first
line = ""
leadingSpaces = n-2-i
line += " "*leadingSpaces
line += "*"
if i != 0:
middleSpaces = 2*i-1
line += " "*middleSpaces
line += "*"
print(line)
# Driver Code
n = 5
Empty_triangle(n)