当我使用三元条件运算符时返回错误的结果

And*_*n34 0 python

如果给定的数字是素数,则有一个返回True的函数,当数字不是时,返回False.这是一些代码:

def isPrime(n):
    ...
    ...
    if (k > 0):
        return False
    else:
        return True


if (isPrime(number)):
    print(number, "is prime")
else:
    print(number, "is not prime")
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是我想在isPrime函数中使用三元条件运算符.所以我编辑了这样的函数:

False if k > 0 else True 
Run Code Online (Sandbox Code Playgroud)

现在,每个给定的数字都被认为不是素数.我的代码中的错误在哪里?

小智 6

代码中的错误是它没有返回三元运算符结果的任何内容.这使它自动返回None被视为False.

只需返回,不需要三元运算符.

def isPrime(n):
    ...
    ...
    return k <= 0
Run Code Online (Sandbox Code Playgroud)

编辑:

要么

    return not k > 0
Run Code Online (Sandbox Code Playgroud)