2024-09-27 02:27:33 发布
网友
好吧,我正在为我的Python类做一个作业。教授要我用%格式说明符做一个乘法表。在
x = 0 y = 0 for y in range(1, 11): for z in range(1, 11): print("%10i" %(y*z))
我知道格式说明符是错误的,但是如何使用代码中的格式类型使其看起来像乘法表呢?在
我希望它看起来像:
谢谢大家。在
for y in range(1, 11): for z in range(1, 11): print(" %3i" %(y*z), end="") print("")
您不需要初始化变量,因为for会这样做。在
for
%3i对于该表中的所有值足够宽;%10i将使表非常宽。在
%3i
%10i
end=""不让它在每个数字打印后添加新行,因此相同值y的所有数字都将打印在同一行上。然后print("")在行的末尾添加一个新行。在
end=""
y
print("")
DEMO
我想如果你用列表理解法,你的任务会容易些。或将z移到print语句中:
z
for y in range(1, 11): print("%10i"*10 % tuple(z*y for z in range(1, 11)))
但是,您可以构建输出字符串:
你快到了! 首先,您不需要x和y变量。你们两个循环没问题。其次,由于您要打印的最大数字是100,因此您需要打印每个数字至少三个字符长(使用"%3d"来打印)。第三,为了防止印刷体将每个数字写在单独的行上,请在末尾加一个逗号。您将不得不插入另一个print来更改内部循环之后的行。在
x
"%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="")。并将宽度增加到四个字符。在
print("%4d" %(y*z), end="")
您不需要初始化变量,因为
for
会这样做。在%3i
对于该表中的所有值足够宽;%10i
将使表非常宽。在end=""
不让它在每个数字打印后添加新行,因此相同值y
的所有数字都将打印在同一行上。然后print("")
在行的末尾添加一个新行。在DEMO
我想如果你用列表理解法,你的任务会容易些。或将
z
移到print语句中:但是,您可以构建输出字符串:
^{pr2}$你快到了!
首先,您不需要
x
和y
变量。你们两个循环没问题。其次,由于您要打印的最大数字是100,因此您需要打印每个数字至少三个字符长(使用"%3d"
来打印)。第三,为了防止印刷体将每个数字写在单独的行上,请在末尾加一个逗号。您将不得不插入另一个print
来更改内部循环之后的行。在我的答案是假设Python2。对于python3,打印后的逗号不能阻止换行,请改用
print("%4d" %(y*z), end="")
。并将宽度增加到四个字符。在相关问题 更多 >
编程相关推荐