尝试在 Python 中格式化乘法 table
Trying to format multiplication table in Python
好的,我正在为我的 Python class 做作业。教授要我使用 % 格式说明符进行乘法运算 table。
x = 0
y = 0
for y in range(1, 11):
for z in range(1, 11):
print("%10i" %(y*z))
我知道格式说明符是错误的,但是如何使用代码中的格式类型使其看起来像乘法 table?
我希望它看起来像:
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
. . .
10 20 30 40 50 60 70 80 90 100
谢谢大家。
试试这个
x = 0
y = 0
s="";
for y in range(1, 11):
for z in range(1, 11):
s=s+" "+str(y*z)
s=s+"\n"
print(s);
我认为如果您使用列表理解,您的任务会更容易。或者将 z
移动到打印语句中:
for y in range(1, 11):
print("%10i"*10 % tuple(z*y for z in range(1, 11)))
但是,您可以构建输出字符串:
for y in range(1, 11):
out = ""
for z in range(1, 11):
out += "%10i" % y*z
print (out)
for y in range(1, 11):
for z in range(1, 11):
print(" %3i" %(y*z), end="")
print("")
您不需要初始化变量,因为 for
会这样做。
%3i
足以容纳此 table 中的所有值; %10i
将使 table 非常宽。
end=""
防止它在打印每个数字后添加换行符,因此 y
相同值的所有数字将打印在同一行上。然后 print("")
在行尾添加一个换行符。
你快到了!
首先,您不需要 x
和 y
变量。你们两个循环都可以。其次,由于您要打印的最大数字是 100,因此您需要打印每个数字至少三个字符长(为此使用 "%3d"
)。第三,为了防止 print 将每个数字写在单独的行上,在末尾放一个逗号。您将必须插入另一个 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="")
。并将宽度增加到四个字符。
好的,我正在为我的 Python class 做作业。教授要我使用 % 格式说明符进行乘法运算 table。
x = 0
y = 0
for y in range(1, 11):
for z in range(1, 11):
print("%10i" %(y*z))
我知道格式说明符是错误的,但是如何使用代码中的格式类型使其看起来像乘法 table?
我希望它看起来像:
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
. . .
10 20 30 40 50 60 70 80 90 100
谢谢大家。
试试这个
x = 0
y = 0
s="";
for y in range(1, 11):
for z in range(1, 11):
s=s+" "+str(y*z)
s=s+"\n"
print(s);
我认为如果您使用列表理解,您的任务会更容易。或者将 z
移动到打印语句中:
for y in range(1, 11):
print("%10i"*10 % tuple(z*y for z in range(1, 11)))
但是,您可以构建输出字符串:
for y in range(1, 11):
out = ""
for z in range(1, 11):
out += "%10i" % y*z
print (out)
for y in range(1, 11):
for z in range(1, 11):
print(" %3i" %(y*z), end="")
print("")
您不需要初始化变量,因为 for
会这样做。
%3i
足以容纳此 table 中的所有值; %10i
将使 table 非常宽。
end=""
防止它在打印每个数字后添加换行符,因此 y
相同值的所有数字将打印在同一行上。然后 print("")
在行尾添加一个换行符。
你快到了!
首先,您不需要 x
和 y
变量。你们两个循环都可以。其次,由于您要打印的最大数字是 100,因此您需要打印每个数字至少三个字符长(为此使用 "%3d"
)。第三,为了防止 print 将每个数字写在单独的行上,在末尾放一个逗号。您将必须插入另一个 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="")
。并将宽度增加到四个字符。