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)
的含义以及之后的其余代码。这是否意味着布尔值
【问题讨论】:
yesnot
结果为布尔值
尝试为该表达式提供不同的数据并查看结果。 12 / 4
与 4 / 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关于cv2的代码'int' object is not iterable. 我的环境是py3,这个报错不懂啊