python中if+not(x==y)的意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中if+not(x==y)的意思?相关的知识,希望对你有一定的参考价值。

Python中的if语句用于执行特定的代码块,当指定条件为真时执行。not是Python中的逻辑运算符,表示取反。因此,if not(x == y)表示如果x不等于y,则执行下面的代码块。可以理解为,如果x和y不相等,则执行下面的代码块。如果x和y相等,则不执行下面的代码块。 参考技术A 这句话的意思是 如果x不等于y,相当于 if x!=y : 的写法。

三个数中最小的一个

【中文标题】三个数中最小的一个【英文标题】:Smallest of three numbers 【发布时间】:2020-07-16 22:10:36 【问题描述】:
# Using division operator to find 
# minimum of three numbers 
def smallest(x, y, z): 

    if (not (y / x)): # Same as "if (y < x)" 
        return y if (not (y / z)) else z 
    return x if (not (x / z)) else z 

# Driver Code 
if __name__== "__main__": 

    x = 78
    y = 88
    z = 68
    print("Minimum of 3 numbers is", 
                smallest(x, y, z)) 

# This code is contributed 
# by ChitraNayal 

所以我在不使用 min 函数的情况下找到三个数字中最小的最短方法找到了上面的代码。我不太明白not(y/z) 的含义以及之后的其余代码。这是否意味着布尔值

【问题讨论】:

yes not 结果为布尔值 尝试为该表达式提供不同的数据并查看结果。 12 / 44 / 12,然后尝试 not (12 / 4)not (4 / 12) so not(y/z) 是什么意思?我的意思是 y/z 意味着什么可能导致一些布尔值作为结果 如果涉及负数,这将不起作用 【参考方案1】:

假设这是 Python 2,除以两个整数使用 integer division,它只返回“整体”部分 - 即小数点左边的部分。因此,如果 x 小于 y,x/y 将返回 0,在布尔上下文中计算为 False,因此 not(x/y) 相当于询问 x 是否小于 y。

【讨论】:

哦,好吧!我正在使用 Python 3。所以每当我执行操作 1/2 时,它都会导致 0.5 没有布尔类型。所以用 x//y 替换 x/y 会有所帮助吗? @Tanmay 是的,对于 Python 3,您必须使用 // 才能使这个 sn-p 工作【参考方案2】:
def smallest(x, y, z): 

if (not (y // x)): # Same as "if (y < x)" 
    return y if (not (y // z)) else z 
return x if (not (x // z)) else z 
print(smallest(3,5,7))

我认为使用地板除法 (//) 是为了代替普通除法 (/)。有了这个,我们可以将零作为除法的返回值,例如 3//5,在 python 中,零被认为是一个假值。

【讨论】:

【参考方案3】:

当您正在探索真实性和整数并想要一个简短的非最小实现时,以下将起作用 =)

def smallest(x, y, z):
    return ((x,z)[z<x],(y,z)[z<y])[y<x]

【讨论】:

【参考方案4】:

如果您正在寻找最短的方法(不使用 min),另一种方法是对数组进行排序并获取第一个元素。

x = 78
y = 88
z = 68

numbers = [x, y, z]
numbers.sort()
print(numbers[0])

【讨论】:

以上是关于python中if+not(x==y)的意思?的主要内容,如果未能解决你的问题,请参考以下文章

三个数中最小的一个

python代码`if not x:` 和`if x is not None:`和`if not x is None:`使用

Python `if x is not None` 或 `if not x is None`? [关闭]

python中的if not 怎么用

python 入门总结

Python关于cv2的代码'int' object is not iterable. 我的环境是py3,这个报错不懂啊