Python: else and elif statements

Python
  1. Introduction to Python
  2. Python: Choosing a Text Editor or IDE
  3. Python: Hello World
  4. Python: Variables, Strings and Numbers
  5. Python: Variable Naming
  6. Python: Math, Familiar
  7. Python: Math, Less Familiar
  8. Python: Mathematical Order of Operations
  9. Python: Introducing PEP 8
  10. Python: Text Concatenation
  11. Python: if Statements and Comparison Operators
  12. Python: else and elif statements
  13. Python: Testing Multiple Conditions
  14. Python: Testing Sets of Conditions
  15. Python: Nested if Statements
  16. Python: Lists
  17. Python: Adding To and Changing Lists
  18. Python: Lists: Take a Slice, Delete Elements, Popping Elements
  19. Python: Tuples
  20. Python: for Loops
  21. Python: Nested for Loops
  22. Python: Capturing and Formatting User Input
  23. Python: Dictionaries
  24. Python: Functions
  25. Python: While Loops
  26. Python: Creating and Using Classes
  27. Python: Data Files
  28. Python: Modules
  29. Python: CSV Files
  30. Python: JSON Files
  31. Python: Errors and Exception Handling
  32. Python: Using Pexpect
  33. Python : Using Pexpect : ftpTestOffload.sh
  34. Python : Using Pexpect: ftpTest.py
  35. Python: DCL Conversion to Python

Go to Chapter 11 of A Smarter Way.

You could use a series of if statements for multiple tests:

if text == 'this text':
    print("this text")
if text == 'that text':
    print("that text")
if text == 'some other text':
    print("some other text")

If you use a series of if statements, all of them are evaluated. This is not true if you use elif:

if text == 'this text':
    print(text)
elif text == 'that text':
    print("text")
elif text == 'some other text':
    print("text")

If you use if … elif statements, the code will run only until a match is found. Though there is no “break” statement in each if or elif block, Python will in fact break out of the if series once a match is found.

You still need a “catch-all” statement to catch all other possibilities:

if text == 'this text':
    print(text)
elif text == 'that text':
    print("text")
elif text == 'some other text':
    print("text")
else:
    print("No match")

Else does the job: in this case if there’s no match, “No match” will be printed.

Exercises

See http://www.asmarterwaytolearn.com/python/11.html

See http://introtopython.org/if_statements.html

  1. Return to examples.py.
  2. Do a test on the author’s name. If the name variable holds the proper name, print “Authorized Edition”.
  3. If the name variable doesn’t hold the proper name, print “Not an Authorized Edition!”
  4. If the name variable holds no value, print “No name”.