2017-04-06 81 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)]))