如何从Python中的循环中删除尾随逗号?

时间:2015-07-19 20:09:04

标签: python python-3.x

到目前为止,这是我的代码:

def main():
    for var in range (1, 101):
        num= IsPrime(var)
        if num == 'true':
             print(var, end=', ') 

IsPrime函数计算函数是否为素数。

我需要将1到100之间的素数打印成一行,其间有逗号和空格。例如,输出应如下所示:

2,  3,  5,  7,  11,  13,  17,  19,  23,  29,  31,  37,  41,  43,  47,  53,  59,  61,  67,  71,  73,  79,  83,  89,  97 

我试图运行我的程序,但是我总是在97结尾处得到一个逗号。我不知道如何删除逗号,因为它是一个循环,str.rstrip和[: - 1]不工作。

我需要使用循环而我无法使用

print('2') 
print(', ', var, end='') 

其他素数。

我无法判断是否有更简单的方法对此进行编码,或者我不知道可以正确执行此操作的功能。

2 个答案:

答案 0 :(得分:9)

在我看来,惯用的Python代码看起来像这样:

print(', '.join([str(x) for x in xrange(1, 101) if IsPrime(x) == 'true']))

(如果IsPrime实际返回TrueFalse而不是字符串,那会更好。

这是功能性而非命令性代码。

如果您需要命令式代码,则应在每个元素之前打印', ',除了循环的第一项。您可以使用布尔变量执行此操作,在您看到一个项目后将其设置为true。

答案 1 :(得分:4)

您可以将所有数字放入列表中,然后加入所有值:

def main():
    primes = []
    for var in range (1, 101):
        if IsPrime(var) == 'true':
            primes.append(var)
        num = IsPrime(var)
    print(', '.join(primes))