логика оператора if с условием OR

result_list = [tag for tag in soup.find_all('li', {'class': 'rsltItem'}) 
if tag['class'] == ['rsltItem']]

или

result_list = [tag for tag in soup.find_all('li', {'class': 'rsltItem'}) 
if len(tag['class']) == 1]
0
задан Risto M 25 March 2019 в 11:40
поделиться

3 ответа

Ошибка в вашем коде - сравнение ИЛИ (||) и два условия отрицания. Проверьте следующий псевдокод:

If ( character is not A OR character is not D )
 => Always true.

Поэтому измените сравнение на следующее:

if ((!dr["QUALITY"].ToString().Equals("A")) && (!dr["QUALITY"].ToString().Equals("D")))
0
ответ дан Risto M 25 March 2019 в 11:40
поделиться

В вашем случае, когда QUALITY равно "A", тогда вторая часть из вас if -условия

(!dr["QUALITY"].ToString().Equals("D"))

верна

, поэтому ваш код должен выглядеть следующим образом 117]

string quality = dr["QUALITY"].ToString();
if (quality != "A" && quality != "D")
{
    dr["QUALITY_GRD"] = Calc_Rank(Convert.ToInt32(quality), 0);
    dr["QUALITY_PT"] = Calc_Grade(dr["QUALITY_GRD"].ToString(), 1);
}
else
{
    dr["QUALITY_GRD"] = "";
    dr["QUALITY_PT"] = "";
}
0
ответ дан fubo 25 March 2019 в 11:40
поделиться

Вам нужно использовать && вместо ||

Код в настоящее время читает, если его нет A или нет D

Итак, если вы передадите его A это все еще верно, потому что это не D

0
ответ дан TheGeneral 25 March 2019 в 11:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: