通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;
高效管理不断变化的情形,如餐馆是否还有特定的食材;
requested_toppings = ['mushroom','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!")
上面的代码中if语句检查顾客点的是否是青椒,如果是,就显示一条消息,
指出不能点青椒的原因。else语句确保其它配料都能添加到比萨中。
下面在制作比萨前检查顾客点的配料列表是否为空。如果列表是空的,就向顾客
确认他是否要点普通比萨;如果列表不为空,就像前面的实例那样制作比萨:
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循环。在if语句中将列表名用在条件表达式中时,
Python将在列表至少包含一个元素返回True,并在列表为空时返回False。如果
requested_toppings,就运行与前一个示例相同的for循环;否则,就打印一条
消息,询问顾客是否确实要点不加任何配料的普通比萨(else语句)
使用多个列表
顾客的要求五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条,
该怎么办?可使用列表和if语句来确定是否能满足顾客的要求。
下面的实例定义了两个列表,其中第一个列表包含比萨店供应的配料,而第二个列表
包含顾客点的配料。这次对于requested_toppngs中的每个元素,都检查它是否是比
萨店供应的配料,再决定是否在比萨中添加它:
availabele_toppings = ['mushrooms','olives','green peppers',
'pepperonl','pineapple','extra cheese']
requested_toppings = ['mushrooms','french fries','extra cheese']
for requested_topping in requested_toppings:
if requested_topping in availabele_toppings:
print("Adding " + requested_topping + ".")
else:
print("Sorry,we don't have" + requested_topping + ".")
print("\nFinished making your pizza!")
在第一句中,我们定义了一个列表,其中包含比萨店供应的配料。请注意,如果比萨店
供应的配料是固定的,也可使用一个元祖来存储它们。在第二个列表中其中包含顾客点
的配料,请注意那个与众不同的配料——‘french fries’。在第三行,我们遍历顾客点
的配料列表。在这个循环中,对于顾客点的每种配料,我们都检查它是否包含在供应的配
料列表中(if语句);如果结果为True,就加入到比萨饼中,否则运行else代码块;