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