0

所以我正在尝试使用 Python 从星号中创建字母 H,但我似乎无法弄清楚如何创建一条要穿过的垂直线,以便使用我迄今为止编写的代码创建字母 H :

def across(n):    
    for i in range(n):
        print ('*', end=' ')
    print()

def straight(n):
    for i in range(n):
        print ('*')

def main():
    n=6
    straight ((n-3)//2)
    across(n//2)
    straight ((n-3)//2)

main()

这是输出:

*
***
*

有任何想法吗?感谢您提前提供任何帮助。

4

1 回答 1

0

您必须一次打印一行。切换到下一行后,您将无法返回上一行。所以,这个想法是(例如对于高度 3),在第一次迭代时,代码应该打印“star star”。它应该更改为下一行('\n'),然后打印“starstarstar”,因为它是中间行。最后,在最后一行“star star”上再次出现。希望这可以帮助。

def line(a):
    print "*",

    for j in range(a-2):
        print " ",

    print "*",

def middleLine(a):
    for j in range(a):
        print "*",

a = int(raw_input("Enter height (odd numbers only greater than 3): "))

for i in range(a):
    if i != (a / 2):
        line(a)

    else:
        middleLine(a)

    print
于 2014-03-29T20:43:40.683 回答