Python中乘法表的分配
我想编写一个乘法表,并在下面写下代码,唯一的问题是当它打印出代码时,行和列未按我希望的方式分配。我怎样才能让他们完美地完成所有的工作,尽可能以最简单的方式进行合适的位置,所以我作为初学者可以理解。谢谢!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()
您应该使用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
你的代码工作正常我测试它,但是当我将“{:3}”格式添加到我的代码中时,它不会像您的那样显示,您知道为什么吗? –
你能准确显示你正在添加什么吗? –
没有现在它的作品!非常感谢! –
另一种方法(它保存到矩阵):
所以主要的想法是相同的(使用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)
而不是打印结束=“”,尝试做“\ t”打印标签空间。即时通讯假设你想要所有的号码排队 –
供将来参考,我建议发布一个预期的和实际的输出 –
你的意思是这样吗? print(row * col“\ t”) 如果不是,请告诉我你的意思,如果是的话,那并不是按照我想要的方式在表格中打印它,而是垂直打印它 –