2015-10-05 49 views
2

我想編寫一個乘法表,並在下面寫下代碼,唯一的問題是當它打印出代碼時,行和列未按我希望的方式分配。我怎樣才能讓他們完美地完成所有的工作,儘可能以最簡單的方式進行合適的位置,所以我作爲初學者可以理解。謝謝!Python中乘法表的分配

rows= int(input("How many rows?: ")) 

columns= int(input("How many columns?: ")) 

for row in range(1, rows+1): 
    for col in range(1,columns+1): 
     print(row * col, end=" ") 
print() 
+0

而不是打印結束=「」,嘗試做「\ t」打印標籤空間。即時通訊假設你想要所有的號碼排隊 –

+0

供將來參考,我建議發佈一個預期的和實際的輸出 –

+0

你的意思是這樣嗎? print(row * col「\ t」) 如果不是,請告訴我你的意思,如果是的話,那並不是按照我想要的方式在表格中打印它,而是垂直打印它 –

回答

3

您應該使用str.format()和右(或左)結果證明到3長度(以空格填充)。示例 -

for row in range(1, row+1): 
    for col in range(1,columns+1): 
     print("{: >3}".format(row * col), end="") 
    print() 

如果要包含較大的數字,則可以從3增加長度。

格式解釋 -

{: >3}字符:表示之前的格式規範(如果你的:這將被視爲一個字段名(在作爲關鍵字參數傳遞給.format()之前使用字符串方法或是位置參數到它的位置)也可以:之前添加可選的轉換。這在Format String Syntax說明。

' '(在:後空間)我表明要填補什麼。

>表示右對齊

3指示其中對準的寬度。

您可以找到有關format specification mini language here的更多信息。

演示 -

>>> row = 5 
>>> columns = 5 
>>> for row in range(1, row+1): 
...  for col in range(1,columns+1): 
...   print("{: >3}".format(row * col), end="") 
...  print() 
... 
    1 2 3 4 5 
    2 4 6 8 10 
    3 6 9 12 15 
    4 8 12 16 20 
    5 10 15 20 25 
+0

你的代碼工作正常我測試它,但是當我將「{:3}」格式添加到我的代碼中時,它不會像您的那樣顯示,您知道爲什麼嗎? –

+0

你能準確顯示你正在添加什麼嗎? –

+0

沒有現在它的作品!非常感謝! –

0

另一種方法(它保存到矩陣):

所以主要的想法是相同的(使用format())。

rows = int(input("How many rows?: ")) 

columns = int(input("How many columns?: ")) 

mt = [[0 for x in range(rows)] for x in range(columns)] 

for row in range(1, rows + 1): 
    for col in range(1, columns + 1): 
     mt[row - 1][col - 1] = row * col 

for el in mt: 
    print ''.join("{: >4}".format(x) for x in el)