Python 数字1-1000的素数测试

Python 数字1-1000的素数测试,python,function,for-loop,Python,Function,For Loop,作为一个家庭作业,我必须写一个质数测试,它给出一个“真”或“假”的陈述。棘手的是,我必须写一个csv.-文件,其中包括数字1到1000的“真”和“假”语句。 我把这段代码用于素数测试 def Primzahl(n): if n < 2: return False if n == 2: return True if not n & 1: return False for x in range(3, int(n**0.5) + 1, 2):

作为一个家庭作业,我必须写一个质数测试,它给出一个“真”或“假”的陈述。棘手的是,我必须写一个csv.-文件,其中包括数字1到1000的“真”和“假”语句。 我把这段代码用于素数测试

def Primzahl(n):
if n < 2:
    return False
if n == 2: 
    return True    
if not n & 1: 
    return False
for x in range(3, int(n**0.5) + 1, 2):
    if n % x == 0:
        return False
return True

我的for循环只给出11000个数字,而不给出正确或错误的陈述。我必须在for循环中包括if和else吗?有人能帮忙吗?

问题是打印(i)。这将写入
i
,这是您的
通话范围内的号码。您还需要打印函数返回的值,例如,
print(Primzahl(i))
当前您只打印i,而不是方法返回的值。您没有对方法的返回值执行任何操作。您应该将结果分配给一个变量,并打印该变量。(也可以从print语句中调用该方法。)


你的缩进不正确。此代码将导致语法错误。primzahl函数有一个返回值。你可以用这个<代码>如果primzahl(i):打印(i,'是素数');其他:打印(i,‘不是素数’
很抱歉,我的代码的复制和粘贴有一些问题。非常感谢你!你救了我一天,让我更清楚python是如何工作的!
for i in range (1,1001):
    Primzahl (i)
    print (i)
for i in range (1,1001):
isPrime = Primzahl(i)
print (i + ": " + isPrime)