如何在Python中创建水平乘法表?

时间:2017-02-20 21:29:56

标签: python multiplication

到目前为止,我已尝试创建一个应该给出的62倍的表格。

2  4  6  8  10  12

我目前的代码如下:

i = 1
while i <= 6:
   print(2*i ,' \t' , )
   i = i + 1

但是outputs他们vertically,而不是horizontally所以:

2   
4   
6   
8   
10      
12      

每个tab之后还有一个number

1 个答案:

答案 0 :(得分:1)

您可以使用简单的for-loop,因为它们比while循环更适合此应用程序使用Pythonic。

loop 16print number multiplied 2之间的数字new-line空格而不是print字符。最后,您可以在结束时再调用一个for i in range(1, 7): print(i * 2, end=' ') print() ,以便在打印完毕后再移动到下一行。

outputs

2 4 6 8 10 12

generator

如果你想在一行中完成这一切,可以使用string.join()print(" ".join(str(i*2) for i in range(1, 7))) 。您可能无法完全理解这一点,但以下结果会产生相同的结果:

2 4 6 8 10 12

给出:

1234  1 123 12 12312 123

请注意,最后一点是此方法不能生成均匀间隔的表。为了表明我的意思是&#34;均匀间隔&#34;,这里有一些例子:

不均匀间隔:

1234  1     123   12    12312 123

均匀间隔:

print

为了使输出.ljust与上面一样,我们可以使用print("".join(str(i*2).ljust(3) for i in range(1, 7)))

2  4  6  8  10 12 

给出了一个更好的表格:

function

最后,如果你想把它变成更通用的def tbl(num, amnt): print("".join(str(i*num).rjust(len(str(num*amnt))+1) for i in range(1,amnt+1))) ,你可以这样做:

function

以及此>>> tbl(3, 10) 3 6 9 12 15 18 21 24 27 30 >>> tbl(9, 5) 9 18 27 36 45 >>> tbl(10, 10) 10 20 30 40 50 60 70 80 90 100 的一些示例:

{{1}}