到目前为止,这是我的代码:
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='')
其他素数。
我无法判断是否有更简单的方法对此进行编码,或者我不知道可以正确执行此操作的功能。
答案 0 :(得分:9)
在我看来,惯用的Python代码看起来像这样:
print(', '.join([str(x) for x in xrange(1, 101) if IsPrime(x) == 'true']))
(如果IsPrime
实际返回True
或False
而不是字符串,那会更好。
这是功能性而非命令性代码。
如果您需要命令式代码,则应在每个元素之前打印', '
,除了循环的第一项。您可以使用布尔变量执行此操作,在您看到一个项目后将其设置为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))