2016-03-07 29 views
0

我試圖製作一個戰列網格,左邊的數字和頂部的字母。我很困惑你將如何打印出一定數量的字母,並用python添加它們。談到Python,我是一個非常新的初學者。Python:如何打印出一定範圍的字母表

例如:

def displayGrid(Rows,Columns): 
     output = '| ' 
     for title in range(97,110): 
      output = output + chr(title) 
      output = output + ' |' 
     print(output) 

     for row in range(Rows): 
      output = str(row + 1) + '| ' 
      for col in range(Columns): 
       output = output + " | " 
      print(output) 

    Rows = int(input("Number of rows you want? \n")) 
    Columns = int(input("Number of columns you want? \n")) 

    displayGrid(Rows, Columns) 

我希望它這樣的列數是它打印出的字母數,但我似乎無法弄清楚。

回答

1

您的第一個循環(for title in range(97,110):)將始終具有固定長度(110-97 = 13個元素),因此無論您需要多少列,您總是會以相同的第一行結束。

嘗試像for title in range(97, 97+Columns):

+1

,我固定它。我很困惑我是多麼的無能爲力。對不起,說這個不必要的問題。 – Mvpgman1425

+1

歡迎來到星期一。 :) – acdr

-1

幾個小技巧 -

  1. 當你有一個可重複的,你要打印和某些分隔符加入你可以使用加入 - '|'.join(["a", "b", "c"]) a|b|c

  2. from string import lowercase會給你一個字符串(你可以迭代)所有的小寫字母。

  3. 檢查蟒蛇itertools - https://docs.python.org/2/library/itertools.html

0

替換此

for title in range(97,110): 
     output = output + chr(title) 
     output = output + ' |' 
    print(output) 

通過

output = " |" +"|".join([chr(i) for i in range(97,97+Columns)]) 
print(output) 
+0

我會使用它,但我還沒有學到它,我很重視我應該先使用的東西,而不是使用不必要的東西,以後可能會讓我感到困惑。但這只是我學習xd的方式。 – Mvpgman1425

+0

@ Mvpgman1425我同意使用你不明白的代碼是一個壞主意,但這不是 – maazza

+0

中的巫術,我只是試過這個,它會導致一些不平衡。這也會導致網格佈局出現問題。當我進一步瞭解這一點時,我會盡力去做。謝謝你給我一些技巧。 :) – Mvpgman1425

0

您可以通過

訪問小寫字母

而且乾淨的方式來實現你的字符串將是:你說的這個權利之前

result = "| " + " | ".join(lowercase[0:size]) + " |"