Неправильно работает сравнение переменной с несколькими значениями через or
1,00
р.
р.
Всем привет программируя на 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) Именно это у вас и происходит.