2014-03-29 155 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