草庐IT

boolean_scope

全部标签

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 - 使用相同的 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

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

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

python - 如何在 Python 中获得 boolean 值的相反(否定)?

对于以下示例:deffuctionName(int,bool):ifintinrange(...):ifbool==True:returnFalseelse:returnTrue有没有办法跳过第二个if语句?只是告诉计算机返回与boolean值相反的bool? 最佳答案 要否定boolean值,您可以使用notoperator:notbool或者在您的情况下,if/returnblock可以替换为:returnnotbool请务必注意operatorprecedencerules,以及取反的is和in运算符:aisnotb和anot

python - 如何在 Python 中获得 boolean 值的相反(否定)?

对于以下示例:deffuctionName(int,bool):ifintinrange(...):ifbool==True:returnFalseelse:returnTrue有没有办法跳过第二个if语句?只是告诉计算机返回与boolean值相反的bool? 最佳答案 要否定boolean值,您可以使用notoperator:notbool或者在您的情况下,if/returnblock可以替换为:returnnotbool请务必注意operatorprecedencerules,以及取反的is和in运算符:aisnotb和anot

python - 将从文件读取的 True/False 值转换为 boolean 值

我正在从文件中读取True-False值,我需要将其转换为boolean值。目前它总是将其转换为True,即使该值设置为False。这是我正在尝试做的MWE:withopen('file.dat',mode="r")asf:forlineinf:reader=line.split()#Converttobooleanfile.dat文件基本上由一个字符串组成,其中写入值True或False。这种安排看起来非常复杂,因为这是来自更大代码的最小示例,这就是我将参数读入其中的方式。为什么flag总是转换成True? 最佳答案 bool('