[英]How to print multiplication table using nested for loops
我需要一些幫助來使用嵌套 for 循環打印乘法表。 我現在的代碼是:
for x in range(1,10):
print(" ", x, end = '')
print()
for row in range(1, 10):
for col in range(1, 10):
num = row * col
if num < 10:
empty = " "
else:
if num < 100:
empty = " "
print(empty, num, end = '')
print()
它出來了
我需要它打印為
最簡單的方法之一是從 0 而不是 1 開始計數:
for row in range(0, 10):
for col in range(0, 10):
num = row * col
if num < 10:
empty = " "
else:
if num < 100:
empty = " "
if col == 0:
if row == 0:
print(" ", end = '')
else:
print(" ", row, end='')
elif row == 0:
print(" ", col, end='')
else:
print(empty, num, end = '')
print()
這將打印
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
話雖如此,這是一個單行版本,其結果是相同的輸出:
print("\n".join(("{:>4}"*10).format(*(i*j if i*j else i+j if i+j else "" for j in range(10))) for i in range(10)))
試試這個:
header = '\t{}'.format('\t'.join(map(str, range(1, 10))))
rows = []
for i in range(1, 10):
row = '\t'.join(map(str, (i*q for q in range(1, 10))))
rows.append('{}\t{}'.format(i, row))
print(header+'\n' + '\n'.join(rows))
這會給你:
>>> print(header+'\n'+'\n'.join(rows))
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
@Selcuk 做了一些很好的觀察,所以這里有一個帶有嵌套 for 循環和正確對齊的版本:
header = []
for i in range(1, 10):
header.append('{0:>2}'.format(i))
rows = []
for i in range(1, 10):
row = []
for q in range(1, 10):
result = '{0:>2}\t'.format(i*q)
row.append(result)
rows.append(row)
print('\t{0:>2}'.format('\t'.join(header)))
for idx, row in enumerate(rows):
print('{0:>2}\t{1}'.format(idx+1, ''.join(row)))
這是一個打印自定義長度表格的函數
def multiplication_table(row, col):
fin = []
for i in range(1, row+1):
arr = []
for j in range(1, col+1):
arr.append(i * j)
fin.append(arr)
return fin
例如:multiplication_table(3, 3)
[[1, 2, 3],
[2, 4, 6],
[3, 6, 9]]
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.