while loop - sentinel menu

Objective

After working through this lesson, you’ll be able to
  • Write Python code using a while loop with a sentinel value to create a menu.

Introductory Problem

Using a while loop, ask the user how many snaps they’ve sent each day for the past 5 days. Print the sum of these numbers.
intro.py
sum = 0
x = 0
while x < 5:
snaps = int(input("How many snaps did you send" ))
sum = sum + snaps
print(sum)

while loop - sentinel menu

Previously, you learned how to write loops that read and processed a sequence of values until it reached a sentinel value. Recall that a sentinel value marks the end of a data set, but it is not part of the data set. A loop that uses a sentinel value in this way is called a sentinel-controlled loop. Today, you'll use a while loop with a sentinel value to create a menu system. This is also known as a game loop.
The variable role of done is a One-Way Flag.

Examples

Example 1

Initialize the variable done to False.
Create a while loop with the condition not done.
Print these lines:
print("Menu")
print("S - Start")
print("Q - Quit")
If the user enters S, print "Starting Game".
Else if the user enters Q, print "Exiting Game", and assign done to True.
example1.py
done = False
while not done:
print("Menu")
print("S - Start")
print("Q - Quit")
choice = input(":: ")
if choice == "S":
print("Starting Game!")
elif choice == "Q":
print("Exiting Game!")
done = True
else:
print("Invalid Choice")

Example 2

Create a new menu item "B - Bus Ride" Ask the user how many minutes they ride the bus. If the user enters less than 30, print "not long", else print "too long".
example2.py
done = False
while not done:
print("Menu")
print("S - Start")
print("B - Bus Ride")
print("Q - Quit")
choice = input(":: ")
if choice == "S":
print("Starting Game!")
elif choice == "Q":
print("Exiting Game!")
done = True
elif choice == "B":
bus = int(input("How long is your bus ride? "))
if bus < 30:
print("not long")
else:
print("too long")
else:
print("Invalid Choice")

Example 3

Create a new menu item "N - Number"
Ask the user for a number. If they enter an even number, print even. Else if they print an odd number, print odd.
example3.py
done = False
while not done:
print("Menu")
print("S - Start")
print("B - Bus Ride")
print("N - Number")
print("Q - Quit")
choice = input(":: ")
if choice == "S":
print("Starting Game!")
elif choice == "Q":
print("Exiting Game!")
done = True
elif choice == "B":
bus = int(input("How long is your bus ride? "))
if bus < 30:
print("not long")
else:
print("too long")
elif choice == "N":
num = int(input("Number: "))
if num % 2 == 0:
print("even")
else:
print("odd")
else:
print("Invalid Choice")

Conclusion

  • In your own words, what is a sentinel? What are real life examples of sentinels?
  • Explain the role of the One-Way Flag variable when using a while loop with a sentinel value to create a menu.
Last modified 3yr ago