逻辑运算符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)做同样的事情
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在这里什么都买不到