2015-04-16 55 views
0

所以我試圖編寫一個功能的練習,將使網格。打印返回加括號不重要我做什麼

當前的代碼只是使一個2x2看中尋找格:

First = [0, 4, 8, 12, 16] 
Second = [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15] 

x = 0 

while True: 
    if x in First: 
     print '+', '-' * 4, '+', '-' * 4, '+', '-' * 4, '+', '-' * 4, '+' 
     x += 1 

    elif x in Second: 
     print '|', ' ' * 4, '|', ' ' * 4, '|', ' ' * 4, '|', ' ' * 4, '|' 
     x += 1 

    else: 
     break 

這看起來像:

+ - - - - + - - - - + 
|   |   | 
|   |   | 
|   |   | 
|   |   | 
+ - - - - + - - - - + 
|   |   | 
|   |   | 
|   |   | 
|   |   | 
+ - - - - + - - - - + 

我想擴大這個代碼,以使一個函數,它的長度參數和寬度,並使這個尺寸的網格。

def grid_maker(length, height): 

我遇到的問題是,我不能爲了我的生活讓它正確地重複模式多次。

如果我做這樣的事情:

bob = '+', '-' * 4 
print bob + bob 

print bob * length 

它有括號開始和結尾,就好像它使每個條目是鮑勃的列表。

有沒有一種方法可以將此模式重複x次並使其完全按照原樣打印,而無需添加額外的逗號或括號?

編輯:使用Python2.7

回答

3

這條線:

bob = '+', '-' * 4 

創建一個元組。

bob = '+' + '-' * 4 
+0

這使得電網會略有更緊湊,但作品!多次打印時,逗號是如何旋轉的,但是當我像原始代碼一樣打印時,它的工作原理是什麼?原始代碼實際上只是打印由空格分隔的列表? –

+0

'print'採用逗號分隔的參數。分配的RHS上的逗號將創建一個元組。 – cdarke

0
bob = '+', '-' * 4 

是一個元組是equivelent到

bob = ('+', '----') 

我想你想

bob = '+' + '-'*4