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

时间:2018-07-20 11:03:29

标签: 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")

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

False if k > 0 else True 

现在每个给定的数字都不是素数。我的代码中的错误在哪里?

3 个答案:

答案 0 :(得分:6)

您的代码中的错误是它没有任何可返回三元运算符结果的东西。这样,它会自动返回render() { const dataItems = this.props.results.map(result => (result.results.map(item => ( <tr key={item.id}> <td>{item.id}</td> <td> <img style={{ width: '150px', height: '100px' }} src={item.image} /> </td> <td>{item.name}</td> <td>{item.status}</td> <td>{item.species}</td> </tr> ) ,它被视为None

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

False

编辑:

Or

def isPrime(n):
    ...
    ...
    return k <= 0

答案 1 :(得分:0)

它将一直返回False,直到数字大于0。因为代码中的False位于True result的位置。

使用此:

True if k>0 else False

在您的情况下:

def isPrime(k):
    return False if k<0 else True

答案 2 :(得分:-1)

使用方式:

return n if n<m else m
相关问题