到目前爲止,我已經嘗試創建的2
第一6
倍數的表,應該給:如何在Python中創建水平乘法表?
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
有每個number
之後還有一個tab
。
到目前爲止,我已經嘗試創建的2
第一6
倍數的表,應該給:如何在Python中創建水平乘法表?
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
有每個number
之後還有一個tab
。
將您的打印語句更改爲如下所示:print(2*i, end=' \t')
end
key參數設置結尾字符應該是什麼。如你所知,默認情況下,它是一個換行符。
您可以使用簡單的for-loop
,因爲它們比while
循環更適合此應用程序的Pythonic。
所以才loop
通過1
和6
和print
之間的數字,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
均勻間隔:
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
可能重複的[python print()函數中的新行)(https://stackoverflow.com/questions/18179606/new-line-in-python-print-function) –