Использование команд if со списками
97
А если в пиццерии вдруг кончится зеленый перец? Команда
if
в цикле
for
может
правильно обработать эту ситуацию:
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
if requested_topping == 'green peppers':
print("Sorry, we are out of green peppers right now.")
else:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
На этот раз программа проверяет каждый заказанный элемент перед добавлением
его к пицце. В точке
программа проверяет, заказал ли клиент зеленый перец,
и если заказал — выводит сообщение о том, что этого дополнения нет. Блок
else
в точке
гарантирует, что все другие дополнения будут включены в заказ.
Из выходных данных видно, что все заказанные дополнения обрабатываются
правильно:
Adding mushrooms.
Sorry, we are out of green peppers right now.
Adding extra cheese.
Finished making your pizza!
Проверка
наличия элементов в списке
Для всех списков, с которыми мы работали до сих пор, действовало одно про-
стое предположение: мы считали, что в каждом списке есть хотя бы один эле-
мент. Скоро мы предоставим пользователю возможность вводить информацию,
хранящуюся в списке, поэтому мы уже не можем предполагать, что при каждом
выполнении цикла в списке есть хотя бы один элемент. В такой ситуации перед
выполнением цикла
for
будет полезно проверить, есть ли в списке хотя бы один
элемент.
Проверим, есть ли элементы в списке заказанных дополнений, перед изготовлением
пиццы. Если список пуст, программа предлагает пользователю подтвердить, что он
хочет базовую пиццу без дополнений. Если список не пуст, пицца готовится так
же, как в предыдущих примерах:
requested_toppings = []
if requested_toppings:
for requested_topping in requested_toppings:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
else:
print("Are you sure you want a plain pizza?")
На этот раз мы начинаем с пустого списка заказанных дополнений в точке
.
Вместо того чтобы сразу переходить к циклу
for
, программа выполняет проверку