在Python for循环中删除最后一个字符

时间:2019-02-24 22:18:22

标签: python

我正在尝试制作一个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行中看到的那样,我有字符串“:”,它在每个整数之后添加冒号。问题是我不希望它在每行的最后一个数字上添加它。我该如何解决?

谢谢

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))

此方法使您不必编写额外的代码来以不同的方式处理最后一种情况。

https://www.tutorialspoint.com/python/string_join.htm

答案 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()