2017-04-06 72 views
1

我有一个任务,在Python中创建一个10乘10的表,并且在我的打印函数中使用了末尾“\ t”来防止它创建一个新行。但是,我需要它在10个字符之后开始一个新行。我怎样才能做到这一点?这里是我的代码:在Python中打印表

product = 0 
for x in range(1,11): 
    for y in range(1,11): 
     product = x * y 
     print(product, end="\t") 

我需要它看起来像这样:

1 2 3 4 5 6 ... 
2 4 6 8 10 12 ... 
3 6 9 12 15 18 ... 
+2

'print()'在内部循环之后。 – zondo

+0

@zondo如果她使用Python的2.x版本怎么办?我宁愿建议'print(“”)'。 – mwarzynski

+0

@mwarzynski:Python 2.x没有'end'关键字,因为'print'不是函数。 – zondo

回答

0

这是使用alignement从format方法选项。

product = 0 
for x in range(1,11): 
    for y in range(1,11): 
     product = x * y 
     print('{:<4}'.format(product), end='') 
    print() 

参考:Format specification mini-language

+0

我觉得这有点过去了,现在我在我的课堂上,但我仍然会玩它,看看它是什么:)谢谢! –

0

我想你需要添加得到你想要的是打印新的生产线在你的内部循环,像这样:

product = 0 
for x in range(1,11): 
    print() 
    for y in range(1,11): 
     product = x * y 
     print(product, end="\t") 

在第三它将在10之后开始新行。 输出将如下所示: 1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

+1

'print()'自动为正在打印的任何内容添加一个新行。当你打印新的一行时,你实际上添加了两行。只需使用'print()'而不带任何参数。 – zondo

+0

@zondo;)你是对的谢谢! – MattCom

+0

你可能想要更多'print()'行到内部循环之后。否则,您会在开始时打印一个空白行,然后将控制台光标留在最后一行的末尾! – flakes

0

为了好玩,t他可以做一个列表理解的单线程和join方法

print('\n'.join(['\t'.join([str(x*y) for x in range(1,11)]) for y in range(1,11)]))