python学习笔记(六):if语句之处理数据

目录

4. 使用if语句处理列表

4.1 检查特殊元素

4.2 确定列表不是空的

4.3 使用多个列表

5. 设置if语句的格式


4. 使用if语句处理列表

      通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;高效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都将按预期那样运行。

4.1 检查特殊元素

    继续使用前面的披萨店示例。这家披萨店在制作披萨时,每添加一种配料都打印一条消息。通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到披萨中的配料,可以以极高的效率编写这样的代码:

requesteds = ['mushrooms', 'onions', 'green peppers','pineapple']

for requested in requesteds:

    print("Adding " + requested + ".")

print("\nFinished making your pizza!")

输出结果为:

Adding mushrooms.

Adding onions.

Adding green peppers.     

Adding pineapple.



Finished making your pizza!

   输出很简单,因为上述代码不过是一个简单的for循环。

    然而,如果比萨店的 green peppers’用完了,该如何处理呢?为妥善地处理这种情况,可在for循环中包含一条if语句:

requesteds = ['mushrooms', 'onions', 'green peppers','pineapple']

##if requesteds:##判断列表不是空的

for requested in requesteds:

    if requested == 'green peppers':

        print("Sorry, we are out of green peppers right now.")

    else:

        print("Adding " + requested + ".")

print("\nFinished making your pizza!")

输出结果为:

Adding mushrooms.

Adding onions.

Sorry, we are out of green peppers right now.

Adding pineapple.



Finished making your pizza!

     这里在比萨中添加每种配料前都进行检查。 首先检查顾客点的是否是青椒,如果是,就显示一条消息,指出不能点青椒的原因。 然后else代码块确保其他配料都将添加到比萨中。

4.2 确定列表不是空的

      到目前为止,对于处理的每个列表都做了一个简单的假设,即假设它们都至少包含一个元素。我们马上就要让用户来提供存储在列表中的信息,因此不能再假设循环运行时列表不是空的。有鉴于此,在运行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?")

输出结果为:

Are you sure you want a plain pizza?

4.3 使用多个列表

     顾客的要求往往五花八门,在披萨配料方面尤其如此。如果顾客要在披萨中添加炸薯条,该怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。

     来看看在制作披萨前如何拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个列表包含披萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的每个元素,都检查它是否是披萨店供应的配料,再决定是否在披萨中添加它:

available_toppings = ['mushrooms', 'olives', 'green peppers',

                        'pepperoni', 'pineapple', 'extra cheese']

requested_toppings = ['mushrooms', 'french fries', 'extra cheese']



for requested_topping in requested_toppings:

    if requested_topping in available_toppings:

        print("Adding " + requested_topping + ".")

    else:

        print("Sorry, we don't have " + requested_topping + ".")

print("\nFinished making your pizza!")

输出结果为:

Adding mushrooms.

Sorry, we don't have french fries.

Adding extra cheese.



Finished making your pizza!

     上例中,我们首先定义一个列表,其中包含披萨店供应的配料。再定义一个列表,其中包含顾客点的配料。然后我们遍历顾客点的配料列表,在这个循环中,对于顾客点的每种配料,我们都检查它是否包含在供应的配料列表中;如果答案是肯定的,就将其加入到披萨中,否则将运行else代码块:打印一条消息,告诉顾客不供应这种配料。

5. 设置if语句的格式

    本章的每个示例都展示了良好的格式设置习惯。在条件测试的格式设置方面, PEP 8提供的唯一建议是,在诸如==、 >=和<=等比较运算符两边各添加一个空格,例如, if age < 4:要比if age<4:好。

     这样的空格不会影响Python对代码的解读,而只是让代码阅读起来更容易。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值