pythonpython-3.xoperand

Python: Is there a way to execute an or statement before !=


I'm trying to run the following code:

while check == False:
    op = input('Do you want to add, subtract, multiply or divide?')
    if op != ((('add' or 'subtract') or 'multiply') or 'divide'):
        print('Please enter a valid operation')
    else:
        check = True

However, only 'add' is seen as a valid input. Is there a way to execute this code without using nested if statements so that all 4 options are valid?


Solution

  • You can do it using the not in operator:

    if op not in ['add', 'substract', 'multiply', 'divide']:
        print('Please enter a valid operation')
    

    in checks for an item in a container, not in just does the opposite.


    Or additionally, as @Chris_Rands suggests, replace the list by a set for efficiency:

    if op not in {'add', 'substract', 'multiply', 'divide'}:
        print('Please enter a valid operation')