Python 3.x 无效语法;第n素数 def primetest(x): 如果x

Python 3.x 无效语法;第n素数 def primetest(x): 如果x,python-3.x,Python 3.x,每当我尝试运行它时,它都会说“print nthprime(10001)”是无效语法 -素数测试是测试一个数是否为素数,nthprime创建一个素数列表,长度为一定长度,然后返回列表的最后一个元素。print是Python 3中的函数,而不是语句。您应该将最后一行代码更改为: def primetest(x): if x < 2: return False if x == 2: return True if x %

每当我尝试运行它时,它都会说“print nthprime(10001)”是无效语法


-素数测试是测试一个数是否为素数,nthprime创建一个素数列表,长度为一定长度,然后返回列表的最后一个元素。

print
是Python 3中的函数,而不是语句。您应该将最后一行代码更改为:

def primetest(x):  
    if x < 2:  
        return False  
    if x == 2:  
        return True  
    if x % 2 == 0:  
        return False  
    for i in range(3,(x**0.5)+1):  
        if x % i == 0:  
            return False  
    return True

def nthprime(n):  
    primes = []  
    x = 2  
    while len(primes) < n:  
        if primetest(x) == True:  
            primes.append(x)  
            x = x + 1  
    return list(-1)  

print nthprime(10001)

print
是Python 3中的函数,而不是语句。您应该将最后一行代码更改为:

def primetest(x):  
    if x < 2:  
        return False  
    if x == 2:  
        return True  
    if x % 2 == 0:  
        return False  
    for i in range(3,(x**0.5)+1):  
        if x % i == 0:  
            return False  
    return True

def nthprime(n):  
    primes = []  
    x = 2  
    while len(primes) < n:  
        if primetest(x) == True:  
            primes.append(x)  
            x = x + 1  
    return list(-1)  

print nthprime(10001)
在代码中:

print(nthprime(10001))
变成这样:

for i in range(3,(x**0.5)+1): 
在代码中:

print(nthprime(10001))
变成这样:

for i in range(3,(x**0.5)+1):