我试图打印一个10x10倍的表使用for循环。
以下是我的尝试:
for x in range (1, 11):
for y in range (1, 11):
print (x*y)
print()输出是一条垂直的数字线。我需要像方形桌子那样的那种。
发布于 2014-10-16 02:59:58
您需要做的是利用end参数:
for x in range (1, 11):
for y in range (1, 11):
print ('{:3}'.format(x*y), end=' ')
print()另外,请注意行项的格式化方式。通过使用'{:3}'.format(x*y),该表达式将空格填充到三个数字。有关格式化的详细信息,查阅文件。
样本输出:
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 发布于 2014-10-16 02:59:45
除非另有说明,打印函数将添加一个\n。试着明确地说不要:
for x in range (1, 11):
for y in range (1, 11):
print (x*y, end=' ')
print()注意:我假设您在python3上或者导入了print_function,因为您使用的是print函数,而不是语句。
编辑:最后加了一个空格
发布于 2019-03-14 14:59:39
可能会使事情变得复杂一些,然后打印X索引和Y索引:)
n = 11
m = 11
grid = [[x * y for x in range(1,n)] for y in range(1,m)]
print(' ', end='')
print(''.join([f'{j:5}' for j in range(1,n)]))
print(' ', end='')
print(''.join([f'{"_":>5}' for _ in range(1,n)]))
for i in range(n-1):
print(f'{i+1:2}|', end=' ')
print(' '.join(f'{x:4}' for x in grid[i]))结果
1 2 3 4 5 6 7 8 9 10
_ _ _ _ _ _ _ _ _ _
1| 1 2 3 4 5 6 7 8 9 10
2| 2 4 6 8 10 12 14 16 18 20
3| 3 6 9 12 15 18 21 24 27 30
4| 4 8 12 16 20 24 28 32 36 40
5| 5 10 15 20 25 30 35 40 45 50
6| 6 12 18 24 30 36 42 48 54 60
7| 7 14 21 28 35 42 49 56 63 70
8| 8 16 24 32 40 48 56 64 72 80
9| 9 18 27 36 45 54 63 72 81 90
10| 10 20 30 40 50 60 70 80 90 100https://stackoverflow.com/questions/26395505
复制相似问题