草庐IT

boolean-logic

全部标签

Python 的 in (__contains__) 运算符返回一个 boolean 值,其值既不是 True 也不是 False

正如所料,1不包含在空元组中>>>1in()False但是返回的False值不等于False>>>1in()==FalseFalse换个角度看,in运算符返回一个bool,它既不是True也不是False:>>>type(1in())>>>1in()==True,1in()==False(False,False)但是,如果原始表达式被括号括起来,则正常行为会恢复>>>(1in())==FalseTrue或者它的值存储在一个变量中>>>value=1in()>>>value==FalseTrue在Python2和Python3中都观察到了这种行为。你能解释一下发生了什么吗?

python - Python中对象的 boolean 值

众所周知,Python对对象有boolean值:如果一个类有一个__len__方法,那么__len__()碰巧返回0的每个实例都会被评估为boolean值False(例如,空列表)。事实上,如果每个可迭代的空自定义对象出现在boolean表达式中,它都会被评估为False。现在假设我有一个带有属性bar的类foo。我如何定义它的真值,例如,如果bar%2==0和False否则它将被评估为True?例如:myfoo=foo()myfoo.bar=3defa(foo):iffoo:print"spam"else:print"eggs"所以,a(myfoo)应该打印"eggs"。

python - Python中对象的 boolean 值

众所周知,Python对对象有boolean值:如果一个类有一个__len__方法,那么__len__()碰巧返回0的每个实例都会被评估为boolean值False(例如,空列表)。事实上,如果每个可迭代的空自定义对象出现在boolean表达式中,它都会被评估为False。现在假设我有一个带有属性bar的类foo。我如何定义它的真值,例如,如果bar%2==0和False否则它将被评估为True?例如:myfoo=foo()myfoo.bar=3defa(foo):iffoo:print"spam"else:print"eggs"所以,a(myfoo)应该打印"eggs"。

python - 如何在 Python 中使用 bool 值 'and'

这个问题在这里已经有了答案:Python'sequivalentof&&(logical-and)inanif-statement(9个回答)关闭8年前。在C#中,我们可以像这样使用&&(bool值和):inti=5;intii=10;if(i==5&&ii==10){Console.WriteLine("iis5,andiiis10");}Console.ReadKey(true);但是用python试试:i=5ii=10ifi==5&&ii==10:print"iis5andiiis10";我收到一个错误:SyntaxError:invalidsyntax如果我使用单个&,至少不会

python - 如何在 Python 中使用 bool 值 'and'

这个问题在这里已经有了答案:Python'sequivalentof&&(logical-and)inanif-statement(9个回答)关闭8年前。在C#中,我们可以像这样使用&&(bool值和):inti=5;intii=10;if(i==5&&ii==10){Console.WriteLine("iis5,andiiis10");}Console.ReadKey(true);但是用python试试:i=5ii=10ifi==5&&ii==10:print"iis5andiiis10";我收到一个错误:SyntaxError:invalidsyntax如果我使用单个&,至少不会

python - 使用相同的 boolean 值初始化列表

没有循环是否可以将所有列表值初始化为某个boolean值?例如,我想要一个包含N个元素的列表,全部为False。 最佳答案 你可以这样做:->>>[False]*10[False,False,False,False,False,False,False,False,False,False]注意:-请注意,您永远不应该对具有相同值的mutabletypes的list执行此操作,否则您会看到以下示例中的令人惊讶的行为:->>>my_list=[[10]]*3>>>my_list[[10],[10],[10]]>>>my_list[0][0

python - 使用相同的 boolean 值初始化列表

没有循环是否可以将所有列表值初始化为某个boolean值?例如,我想要一个包含N个元素的列表,全部为False。 最佳答案 你可以这样做:->>>[False]*10[False,False,False,False,False,False,False,False,False,False]注意:-请注意,您永远不应该对具有相同值的mutabletypes的list执行此操作,否则您会看到以下示例中的令人惊讶的行为:->>>my_list=[[10]]*3>>>my_list[[10],[10],[10]]>>>my_list[0][0

python - 超过两个参数的 Numpy `logical_or`

Numpy的logical_or函数最多需要两个数组进行比较。如何找到两个以上数组的并集?(关于Numpy的logical_and并获得两个以上数组的交集,可以提出同样的问题。) 最佳答案 如果您要询问numpy.logical_or,然后不,正如文档明确所说,唯一的参数是x1,x2,以及可选的out:numpy.logical_or(x1,x2[,out])=您当然可以将多个logical_or链接在一起像这样调用:>>>x=np.array([True,True,False,False])>>>y=np.array([True,

python - 超过两个参数的 Numpy `logical_or`

Numpy的logical_or函数最多需要两个数组进行比较。如何找到两个以上数组的并集?(关于Numpy的logical_and并获得两个以上数组的交集,可以提出同样的问题。) 最佳答案 如果您要询问numpy.logical_or,然后不,正如文档明确所说,唯一的参数是x1,x2,以及可选的out:numpy.logical_or(x1,x2[,out])=您当然可以将多个logical_or链接在一起像这样调用:>>>x=np.array([True,True,False,False])>>>y=np.array([True,

boolean - 将 boolean 值用作整数是 Pythonic 吗?

False等价于0并且True等价于1所以可以这样做:defbool_to_str(value):"""valueshouldbeabool"""return['No','Yes'][value]bool_to_str(True)注意value如何是bool但用作int。这种使用Pythonic还是应该避免? 最佳答案 我会成为奇怪的声音(因为所有答案都在谴责使用False==0和True==1的事实作为语言保证),因为我声称使用这个事实来简化你的代码是非常好的。从历史上看,逻辑真/假操作倾向于简单地使用0表示假,1表示真;在Pyt