Ваша проблема в операторе сравнения if x != 'Light' or 'Medium' or 'Heavy':
, который на самом деле выполняет только проверку для x != 'Light'
, а затем определяет, являются ли строки 'Medium'
или 'Heavy'
истинными (что они будут делать, поскольку строки больше длины 0оценивается как True
).
Простой способ проверить, соответствует ли строка какому-либо значению из списка строк, - это использовать set()
.Поскольку набор позволяет практически мгновенно искать время, чтобы увидеть, находится ли значение внутри набора, вместо необходимости проверять x
для каждого значения.
Использование набора для проверки соответствия x
какой-либо из строкв state_1
:
x = input("Enter state 1")
y = input("Enter state 2")
z = input("Enter state 3")
# Store states in sets
state_1 = {'Light', 'Medium', 'Heavy'}
state_2 = {'Small', 'Medium', 'Large'}
state_3 = {'Blue', 'Red', 'Black'}
if x not in state_1:
print("Wrong input")
else:
x = pre_defined_function(x)