Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo

Learning objectives

By the end of this section you should be able to

  • Identify the branches taken in an if-elif and if-elif-else statement.
  • Create a chained decision statement to evaluate multiple conditions.

elif

Sometimes, a complicated decision is based on more than a single condition. Ex: A travel planning site reviews the layovers on an itinerary. If a layover is greater than 24 hours, the site should suggest accommodations. Else if the layover is less than one hour, the site should alert for a possible missed connection.

Two separate if statements do not guarantee that only one branch is taken and might result in both branches being taken. Ex: The program below attempts to add a curve based on the input test score. If the input is 60, both if statements are incorrectly executed, and the resulting score is 75.

    score = int(input())
    if score < 70:
      score += 10
    # Wrong:
    if 70 <= score < 85:
      score += 5
    

Chaining decision statements with elif allows the programmer to check for multiple conditions. An elif (short for else if) statement checks a condition when the prior decision statement's condition is false. An elif statement is part of a chain and must follow an if (or elif) statement.

if-elif statement template:

    # Statements before

    if condition:
      # Body
    elif condition:
      # Body
    
    # Statements after
    

Checkpoint

Example: Livestream features

Concepts in Practice

Using elif

1.
Fill in the blank to execute Body 2 when condition_1 is false and condition_2 is true.
if condition_1:
  # Body 1
__ condition_2:
  # Body 2
  1. if
  2. elif
  3. else
2.
Given x = 42 and y = 0, what is the final value of y?
if x > 44:
  y += 2
elif x < 50:
  y += 5
  1. 2
  2. 5
  3. 7
3.
Which conditions complete the code such that if x is less than 0, Body 1 executes, else if x equals 0, Body 2 executes.
if _________:
  # Body 1
elif _________:
  # Body 2
  1. x < 0
    x == 0
  2. x == 0
    x < 0
  3. x <= 0
    [no condition]
4.
Which of the following is a valid chained decision statement?
  1. if condition_1:
      # Body 1
    elif condition_2:
      # Body 2
    
  2. if condition_1:
      # Body 1
      elif condition_2:
        # Body 2
    
  3. elif condition_1:
      # Body 1
    if condition_2:
      # Body 2
    
5.
Given attendees = 350, what is the final value of rooms?
rooms = 1
if attendees >= 100:
  rooms += 3
if attendees <= 200:
  rooms += 7
elif attendees <= 400:
  rooms += 14
  1. 4
  2. 15
  3. 18

if-elif-else statements

Elifs can be chained with an if-else statement to create a more complex decision statement. Ex: A program shows possible chess moves depending on the piece type. If the piece is a pawn, show moving forward one (or two) places. Else if the piece is a bishop, show diagonal moves. Else if . . . (finish for the rest of the pieces).

Checkpoint

Example: Possible chess moves

Concepts in Practice

Using elif within if-elif-else statements

6.
Given hour = 12, what is printed?
if hour < 8:
  print("Too early")
elif hour < 12:
  print("Good morning")
elif hour < 13:
  print("Lunchtime")
elif hour < 17:
  print("Good afternoon")
else:
  print("Too late")
  1. Good morning
  2. Lunchtime
  3. Good afternoon
  4. Too late
7.
Where can an elif statement be added?
_1_
if condition:
  # Body
  _2_
elif condition:
  # Body
_3_
else:
  # Body
_4_
  1. 1
  2. 2
  3. 3
  4. 4
8.
Given x = -1 and y = -2, what is the final value of y?
if x < 0 and y < 0:
  y = 10
elif x < 0 and y > 0:
  y = 20
else:
  y = 30
  1. 10
  2. 20
  3. 30
9.
How could the following statements be rewritten as a chained statement?
if price < 9.99:
  order = 50
if 9.99 <= price < 19.99:
  order = 30
if price >= 19.99:
  order = 10
  1. if price < 9.99:
      order = 50
    else:
      order = 30
    order = 10
    
  2. if price < 9.99:
      order = 50
    elif price < 19.99:
      order = 30
    elif price == 19.99:
      order = 10
    
  3. if price < 9.99:
      order = 50
    elif price < 19.99:
      order = 30
    else:
      order = 10
    

Try It

Crochet hook size conversion

Write a program that reads in a crochet hook's US size and computes the metric diameter in millimeters. (A subset of sizes is used.) If the input does not match B-G, the diameter should be assigned with -1.0. Ex: If the input is D, the output is "3.25 mm".

Size conversions for US size: mm

  • B : 2.25
  • C : 2.75
  • D : 3.25
  • E : 3.5
  • F : 3.75
  • G : 4.0

Try It

Color wavelengths

Write a program that reads in an integer representing a visible light wavelength in nanometers. Print the corresponding color using the following inclusive ranges:

  • Violet: 380–449
  • Blue: 450–484
  • Cyan: 485–499
  • Green: 500–564
  • Yellow: 565–589
  • Orange: 590–624
  • Red: 625–750

Assume the input is within the visible light spectrum, 380-750 inclusive.

Given input:

    550
    

The output is:

    Green
    
Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-python-programming/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-python-programming/pages/1-introduction
Citation information

© Feb 26, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.