我正在尝试制作一个python脚本,以打印出两个输入整数的乘法表。我已经完成很多工作,但是有一个小的格式化问题,我无法解决。这是当前输出的内容:
operator>>
您可以在图像中看到,表中的每一行在每个整数后面都有一个“:”。这是来自此for循环的:
Start of table 27
End of table 33
| 27 | 28 | 29 | 30 | 31 | 32 | 33
27 | 729 : 756 : 783 : 810 : 837 : 864 : 891 :
28 | 756 : 784 : 812 : 840 : 868 : 896 : 924 :
29 | 783 : 812 : 841 : 870 : 899 : 928 : 957 :
30 | 810 : 840 : 870 : 900 : 930 : 960 : 990 :
31 | 837 : 868 : 899 : 930 : 961 : 992 : 1023 :
32 | 864 : 896 : 928 : 960 : 992 : 1024 : 1056 :
33 | 891 : 924 : 957 : 990 : 1023 : 1056 : 1089 :
正如您在第4行中看到的那样,我有字符串“:”,它在每个整数之后添加冒号。问题是我不希望它在每行的最后一个数字上添加它。我该如何解决?
谢谢
答案 0 :(得分:1)
您可以尝试使用str.join()
在值之间插入分隔符:
for i in range(start, end+1):
print("%5d |"%i,end="")
row = ["%6d "%(i*j) for j in range(start,end+1)]
print(':'.join(row))
此方法使您不必编写额外的代码来以不同的方式处理最后一种情况。
答案 1 :(得分:0)
for i in range(start,end+1):
print("%5d |"%i,end="")
for j in range(start,end):
print("%6d"%(i*j),":",end="")
print("%6d" % (i * end))
答案 2 :(得分:0)
您可以跳出最后一个:
for i in range(start,end+1):
print("%5d |"%i,end="")
for j in range(start,end):
print("%6d"%(i*j),":",end="")
print("%6d"%(i*end))
答案 3 :(得分:0)
您必须在第二次验证迭代是否等于最后一次,如果是,则清除分离的变量:
for i in range(start,end+1):
print("%5d |"%i)
for j in range(start,end+1):
separation = ":"
if j == end:
separation = ""
print("%6d"%(i*j),separation)
print()