PEP 8:与True的比较应为'如果cond为True:'或'if cond:'

问题描述 投票:1回答:2

当我做np.where时,PyCharm会发出警告(temp == True)

我的完整代码:

from numpy import where, array

a = array([[0.4682], [0.5318]])
b = array([[0.29828851, 0., 0.28676873, 0., 0., 0., 0., 0.28801431, 0., 0., 0.71283046, 0.],
          [0.70171149, 0., 0.71323127, 0., 0., 0., 0., 0.71198569, 0., 0., 0.28716954, 0.]])

temp = b > 1.1*a
pos = where(temp == True)

print(pos) 

如果我将temp == True改为temp为True,则代码无法正常工作,如其他帖子所示。

该警告应如何解决?

where(temp)有效。非常感谢 !! @Joao Vitorino感谢@jedwards的解释。它有助于。

python pycharm
2个回答
2
投票

不要将布尔值与布尔值进行比较。

你应该检查是真还是假。

b == true
if b: # If b is True
   do something 

在你的情况下

temp = b > 1.1*a
pos = where(temp)  

Here一些解释


0
投票

根据Python中的PEP8指南,将事物与True进行比较并不是首选模式。

temp = True
pcos = where(temp)

如果将'temp'指定为false,则仍然在条件语句中仅指定'temp'将导致True。例如:

temp = False
pros = while(temp) # if or while condition

注意:如果您的代码不遵循PEP8,则此情况不会出现任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.