Is there anything better I could use/import?
while StrLevel != "low" or "medium" or "high":
StrLevel = input("Please enter low, medium, or high for the program to work; ")
Is there anything better I could use/import?
while StrLevel != "low" or "medium" or "high":
StrLevel = input("Please enter low, medium, or high for the program to work; ")
You can use not in
.
while strLevel not in ["low", "medium", "high"]:
Indeed, not in
is recommended
But what does it mean to do the comparison you showed in the question?
>>> StrLevel = 'high'
>>> StrLevel != "low" or "medium" or "high"
True
>>> StrLevel = 'medium'
>>> StrLevel != "low" or "medium" or "high"
True
>>> StrLevel = 'low'
>>> StrLevel != "low" or "medium" or "high"
'medium'
...probably not at all what you might've expected.
To simplify it a bit:
>>> 'foo' != 'bar' or 'medium'
True
>>> 'foo' != 'foo' or 'medium'
'medium'
>>> False or 'medium'
'medium'
It's a bit confusing if you're not used to the boolean algebraic expressions in the languages that came before Python. Especially since Python goes to the trouble to make arithmetic comparisons meaningful when chained:
>>> x = 12
>>> 10 < x < 14
True
>>> 10 < x < 11
False