【问题标题】:How to print a 10*10 times table as a grid?如何将 10*10 乘法表打印为网格?
【发布时间】:2014-12-11 07:04:43
【问题描述】:

我正在尝试使用 for 循环打印 10x10 次表。

这是我的尝试:

for x in range (1, 11):
    for y in range (1, 11):
        print (x*y)
    print()

输出是一个垂直的数字行。我需要它,就像方桌一样。

【问题讨论】:

标签: for-loop python-3.x


【解决方案1】:

您需要做的是利用end 参数:

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

另外,请注意行条目的格式。通过使用'{:3}'.format(x*y),表达式用空格填充到三位数字。有关格式化的更多详细信息,consult the documentation

样本输出:

  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 

【讨论】:

  • 填充以保持对齐。否则你不会得到直列。
【解决方案2】:

除非另有说明,否则打印函数会添加\n。试着明确地说不:

for x in range (1, 11):
    for y in range (1, 11):
        print (x*y, end=' ') 
    print()

注意:我假设您使用的是 python3 或导入了 print_function,因为您使用的是 print 函数,而不是语句。

编辑:最后加了一个空格

【讨论】:

  • 我这样做了,然后有一大堆数字。
  • @Player72 最后加了一个空格。另一个答案也应该对齐 cols,以便更好。
  • 我相信另一个答案确实如此,是的。
  • 感谢您的回答。
【解决方案3】:

而且可能会稍微复杂一点,并在此处打印 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  100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多