PEP 8: сравнение с True должно быть «если cond равно True:» или «if cond:» - PullRequest
0 голосов
/ 12 июня 2018

PyCharm выдает предупреждение, когда я делаю np.where (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, как предлагается в другом посте.

Как должно быть разрешено это предупреждение?

где (temp) работает.Большое спасибо !!@Joao Vitorino Спасибо за объяснение, @jedwards.Это помогает.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Согласно руководствам PEP8 в Python сравнение вещей с True не является предпочтительным шаблоном.

temp = True
pcos = where(temp)

Если для «temp» назначено значение «false», при этом в условном выражении по-прежнему указывается только «temp»утверждение приведет к истине.Например:

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

ПРИМЕЧАНИЕ. Если ваш код не соответствует PEP8, этот случай не выдаст ошибку.

0 голосов
/ 12 июня 2018

Не сравнивайте логическое значение с логическим.

Вы должны проверить, является ли True или false.

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

В вашем случае

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

Здесь некоторые пояснения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...