2015-10-05 94 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)