尝试用Python格式化乘法表

2024-09-27 02:27:33 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我正在为我的Python类做一个作业。教授要我用%格式说明符做一个乘法表。在

x = 0
y = 0

for y in range(1, 11):
    for z in range(1, 11):
        print("%10i" %(y*z))

我知道格式说明符是错误的,但是如何使用代码中的格式类型使其看起来像乘法表呢?在

我希望它看起来像:

^{pr2}$

谢谢大家。在


Tags: 代码in类型for格式错误作业range
3条回答
for y in range(1, 11):
    for z in range(1, 11):
        print(" %3i" %(y*z), end="")
    print("")

您不需要初始化变量,因为for会这样做。在

%3i对于该表中的所有值足够宽;%10i将使表非常宽。在

end=""不让它在每个数字打印后添加新行,因此相同值y的所有数字都将打印在同一行上。然后print("")在行的末尾添加一个新行。在

DEMO

我想如果你用列表理解法,你的任务会容易些。或将z移到print语句中:

for y in range(1, 11):
    print("%10i"*10 % tuple(z*y for z in range(1, 11)))

但是,您可以构建输出字符串:

^{pr2}$

你快到了!
首先,您不需要xy变量。你们两个循环没问题。其次,由于您要打印的最大数字是100,因此您需要打印每个数字至少三个字符长(使用"%3d"来打印)。第三,为了防止印刷体将每个数字写在单独的行上,请在末尾加一个逗号。您将不得不插入另一个print来更改内部循环之后的行。在

for y in range(1, 11):
  for z in range(1, 11):
    print("%3d" %(y*z)),
  print ("")

我的答案是假设Python2。对于python3,打印后的逗号不能阻止换行,请改用print("%4d" %(y*z), end="")。并将宽度增加到四个字符。在

相关问题 更多 >

    热门问题