Неправильно работает сравнение переменной с несколькими значениями через or
📁 python, пример
"
У меня возникла проблема с оператором if и его под функцией or. При работе с str выглядит это примерно так
if a==""ноль"" or ""нулевой"": print(0)elif a==""один"" or ""единичный"": print(1)# выводит лишь 0 при любых значениях aЧто мне делать и как это исправить?
"
Многие начинающие программисты думают, что если написать
if a==""ноль"" or ""нулевой"":то а будет сравниваться поочередно с обеими частями - как с ""ноль"", так и с ""нулевой"".
if a==""ноль"" или if a == ""нулевой"":На самом деле исходная строчка не что иное, как
if (a==""ноль"") or (""нулевой""):Поэтому сравнение будет только одно: a == ""ноль"". Вторая часть (""нулевой"") просто оценивается на логический результат, который в данном случае всегда True (). А раз True, то выполнение всегда переходит к следующей строчке print (0) независимо от значения а.
Иными словами, строчка if a==""ноль"" or ""нулевой"" эквивалентна строчке if ""нулевой"". А т.к. результат такого выражения всегда True, то и эта строчка не нужна. Исходя из вышесказанного, все ваши четыре строчки эквивалентны одной:
print(0)Именно это у вас и происходит.
Войдите чтобы оставить ответ