2014-03-29 148 views
0

所以我试图创建使用Python的星号中的字母H,但我似乎无法弄清楚如何创建一个垂直线来通过创建该字母使用H到目前为止,我写的代码:使用Python创建形状或字母

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() 

这是输出:

* 
*** 
* 

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

回答

0

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

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