Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
逻辑运算符Python_Python_Operators_Nonetype - Fatal编程技术网

逻辑运算符Python

逻辑运算符Python,python,operators,nonetype,Python,Operators,Nonetype,可能是一个非常基本的问题,但我无法解决这个问题 这是我的密码: if type(lines_r).__name__ == 'NoneType' or type(lines_l).__name__ == 'NoneType': no_detected.append(i) else: ... 现在,我不想使用和/或运算符,因为在这种情况下,我只想: 如果第一个条件为真,那么它将被-No.detected-并且没有连接到另一个条件,我想对另一个条件(lines_l)做同样的事情 因为这两个条件在

可能是一个非常基本的问题,但我无法解决这个问题

这是我的密码:

if type(lines_r).__name__ == 'NoneType' or type(lines_l).__name__ == 'NoneType':
no_detected.append(i)
else: ...
现在,我不想使用和/或运算符,因为在这种情况下,我只想:

  • 如果第一个条件为真,那么它将被-No.detected-并且没有连接到另一个条件,我想对另一个条件(lines_l)做同样的事情
因为这两个条件在时间上是不相关的(它们不是同时都是真的或都是假的,所以我不能使用AND+,如果我使用,或者如果两个条件中只有一个是非类型,那么条件是真的,这不是我想要的)。 [变量为str]

写这篇文章最好的方法是什么

*编辑 这就是我正在计算的事情

lines_r = cv2.HoughLinesP(Ske_conn_right[i],
                            rho = 1, 
                            theta =np.pi/180, 
                            threshold = 4, 
                            minLineLength=2,
                            maxLineGap=7)
    lines_l = cv2.HoughLinesP(Ske_conn_left[i],
                            rho = 1, 
                            theta =np.pi/180, 
                            threshold = 4, 
                            minLineLength=2,
                            maxLineGap=7)
我在视频中检测运动物体。结果是数组可能有一些0值(在未检测到对象的情况下,以一种过于简单的方式)


行或行可能导致非类型obj

您可以使用
instanceof
检查值是否具有特定类型,但这里您只需检查值是否为

if lines_r is None or lines_l is None:
    no_detected.append(i)

如果你的两个条件都不相关,也许你可以使用if和else-if语句

if type(lines_r).__name__ == 'NoneType':
      no_detected.append(i)
elif type(lines_l).__name__ == 'NoneType':
      no_detected.append(i)
else: ...

同样,这与使用or语句是一样的,但它更类似于您解释逻辑的方式

如果您希望条件为真,则仅当
行r
行l
中的一个为
,您可以先测试变量,然后测试结果是否不相等:

if (lines_r is None) != (lines_l is None):
    no_detected.append(i)

为什么要查看
\uuuu name\uuuu
属性?使用
instanceof
检查对象的类型。为什么不直接检查
是否为None
?因为我正在计算的是一个NumPy数组,它可能会导致一些非类型值。我正确理解了您的问题:如果
行为None
,是否要附加到
未检测到的
。如果
行\u l为无
,则还需要附加到
未检测到
。这是布尔
运算符。也许可以为您的应用程序添加一些细节来澄清问题?您首先不应该在数组中使用
NoneType
。这意味着您使用的是
对象
类型,您应该使用列表,因为numpy在这里什么都买不到