【问题标题】:How do I create a horizontal multiplication table in Python?如何在 Python 中创建水平乘法表?
【发布时间】:2017-02-20 21:29:56
【问题描述】:

到目前为止,我已经尝试创建一个表,其中包含 2 的第一个 6 倍数,应该给出:

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

【问题讨论】:

标签: python multiplication


【解决方案1】:

您可以使用简单的 for-loop,因为对于此应用程序,它们比 while 循环更 Pythonic。

所以只需 loop 通过 16print 之间的数字,number multiplied 通过 2 用空格而不是 new-line 字符。最后,您可以在末尾再调用一个print,以便在它们都打印完后移至下一行。

for i in range(1, 7):
    print(i * 2, end=' ')

print()

outputs:

2 4 6 8 10 12

如果您想在一行中完成整个操作,您可以使用generatorstring.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

【讨论】:

    【解决方案2】:

    将您的打印语句更改为:print(2*i, end=' \t') end 关键参数设置结束字符应该是什么。如您所知,默认情况下,它是一个换行符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2020-08-16
      • 2018-12-31
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多