Для начала вы можете заменить свои if inp == 'something' or 'someotherthing' or 'athridthing'
идиомы на if inp in ('something', 'someotherthing', 'athirdthing')
, потому что or
просто проверяет значение истинности, например, 'someotherthing'
, вместо того, чтобы подключиться к тесту на равенство, таким образом оценивая любой из ваших тестов наTrue
.
Пример:
>>> a = '2'
>>> if a == '1' or '2': print 'hey'
...
hey
>>> a = 'c'
>>> if a == '1' or '2': print 'hey'
...
hey
Как видите, даже если a
назначена строка, отличная от тех, которые были проверены в условии if
, записанном при написании вашего,условие оценивается как True
.
Наоборот:
>>> a = '2'
>>> if a in ('1', '2'): print 'hey'
...
hey
>>> a = 'c'
>>> if a in ('1', '2'): print 'hey'
...
>>>
Надеюсь, это поможет.