Skip to main content

Section 6.7 Omitting the else Clause: Unary Selection

Another form of the if statement is one in which the else clause is omitted entirely. This creates what is sometimes called unary selection. In this case, when the condition evaluates to True, the statements are executed. Otherwise the flow of execution continues to the statement after the body of the if.
Below is a flowchart of an if without an else clause:
Predict the output for the code below and then run it.
What would be printed if the value of x is negative in the example above? Try it.
Check your understanding

Checkpoint 6.7.1.

    What does the following code print?
    x = -10
    if x < 0:
        print("The negative number ",  x, " is not valid here.")
    print("This is always printed")
    
    a.
    This is always printed
    
    b.
    The negative number -10 is not valid here
    This is always printed
    
    c.
    The negative number -10 is not valid here
    
  • Output a
  • Because -10 is less than 0, Python will execute the body of the if-statement here.
  • Output b
  • Python executes the body of the if-block as well as the statement that follows the if-block.
  • Output c
  • Python will also execute the statement that follows the if-block (because it is not enclosed in an else-block, but rather just a normal statement).
  • It will cause an error because every if must have an else clause.
  • It is valid to have an if-block without a corresponding else-block (though you cannot have an else-block without a corresponding if-block).

Checkpoint 6.7.2.

    Will the following code cause an error?
    x = -10
    if x < 0:
        print("The negative number ",  x, " is not valid here.")
    else:
        print(x, " is a positive number")
    else:
        print("This is always printed")
    
  • No
  • Every else-block must have exactly one corresponding if-block. If you want to chain if-else statements together, you must use the else if construct, described in the chained conditionals section.
  • Yes
  • This will cause an error because the second else-block is not attached to a corresponding if-block.
You have attempted of activities on this page.