在星形图案内打印?

时间:2019-11-16 14:30:08

标签: python python-3.x

此代码中是否有一种方法可以在等边三角形内打印一些输入? 我尝试了几种方法,但似乎无法正常工作。它只在所有空格上打印。

h=int(input("Enter Height: "))
for r in range(1, h+1):
    for c in range(1, 2*h):
        if r==h or r+c==h+1 or c-r==h-1:
            print("*", end="")
        else:
            print(end =" ")   
    print()

现在的输出是这样:

OUTPUT

我想在里面打印

WHAT I WANT TO DO

示例: Example

1 个答案:

答案 0 :(得分:-1)

这对您来说应该是一个很好的起点:

h=int(input("Enter Height: "))
characters = iter("word")
for r in range(1, h+1):
    for c in range(1, 2*h):
        if r==h or r+c==h+1 or c-r==h-1:
            print("*", end="")
        elif r==(h*2)//3 and c > h+2-r and c < h-2+r:
            try:
                print(next(characters), end="")
            except StopIteration:
                print(end = " ")
        else:
            print(end =" ")   
    print()

您需要计算一个范围,在该范围内可以打印您的单词并将其打印在那里。为了跟踪您已经打印的字符,可以像在第二行中一样使用iterator

我在这里使用了任意值来限制范围。我认为您可以轻松地自行解决其余问题。

sample output