[英]Removing last character in python for loop
我正在尝试制作一个 python 脚本,打印出两个输入整数的乘法表。 我已经完成了,但我有一个小的格式问题,我无法解决。 这是它当前输出的内容:
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 :
正如您在图像中看到的,表中的每一行在每个整数后面都有一个“:”。 这是来自这个 for 循环:
for i in range(start,end+1):
print("%5d |"%i,end="")
for j in range(start,end+1):
print("%6d"%(i*j),":",end="")
print()
正如您在第 4 行中看到的,我有字符串“:”,它在每个整数后添加冒号。 问题是我不希望它在每一行的最后一个数字上添加它。 我该如何解决这个问题?
谢谢
您可以尝试使用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))
这种方法使您不必编写额外的代码来以不同的方式处理最后一种情况。
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))
您可以将最后一个从循环中取出:
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))
您必须在第二次验证迭代是否等于最后一次,如果是,则清除分离的变量:
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.