《Python编程:从入门到实践》第5章 if语句

目录

5.1 一个简单示例

5.2 条件测试

5.2.1 检查是否相等 

 5.2.2 检查是否相等时忽略大小写

5.2.3 检查是否不相等

5.2.4 数值比较

5.2.5 检查多个条件

 a. 使用and 检查多个条件

 b. 使用or检查多个条件

 5.2.6 检查特定值是否包含在列表中

 5.2.7 检查特定值是否不包含在列表中

5.2.8 布尔表达式

5.2.9 练习

练习5-1:条件测试

练习5-2:更多条件测试

 5.3 if 语句

5.3.1 简单的if 语句

 5.3.2 if-else 语句

5.3.3 if-elif-else 结构

5.3.4 使用多个elif 代码块

5.3.5 省略else 代码块

5.3.6 测试多个条件

5.3.7 练习 

练习5-3:外星人颜色

练习5-4:外星人颜色2

练习5-5:外星人颜色3

练习5-6:人生的不同阶段

练习5-7:喜欢的水果

5.4 使用if 语句处理列表

5.4.1 检查特殊元素

5.4.2 确定列表不是空的

5.4.3 使用多个列表

5.4.4 练习

练习5-8:以特殊方式跟管理员打招呼

练习5-9:处理没有用户的情形

练习5-10:检查用户名

练习5-11:序数

5.5 设置if 语句的格式


5.1 一个简单示例

下面是一个简短的示例,演示了如何使用if 语句来正确地处理特殊情形。假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,应以首字母大写的方式打印其名称,但对于汽车名 'bmw' ,应以全大写的方式打印。下面的代码遍历这个列表,并以首字母大写的方式打印其中的汽车名,不过对于 'bmw' ,则以全大写的方式打印:
cars = ['audi', 'bmw', 'subaru', 'toyota']

for car in cars:
    if car == 'bmw':
        print(car.upper())
    else:
        print(car.title())
这个示例中的循环首先检查当前的汽车名是否是 'bmw' 。如果是,就以全大写方式打印,否则以首字母大写的方式打印:
Audi
BMW
Subaru
Toyota

5.2 条件测试

每条 if 语句的核心都是一个值为 True False 的表达式,这种表达式称为条件测试 。Python根据条件测试的值为 True 还是 False 来决定是否执行 if 语句中的代码。如果条件测试的值为 True ,Python就执行紧跟在 if 语句后面的代码;如果为 False ,Python就忽略这些代码。

5.2.1 检查是否相等 

>>> car = 'bmw'
>>> car == 'bmw'
True
用一个等号将 car 的值设置为 'bmw'
两个等号(== )检查 car 的值是否为 'bmw'
这个相等运算符 在两边的值相等时返回 True ,否则返回 False

 5.2.2 检查是否相等时忽略大小写

在Python中检查是否相等时区分大小写。例如,两个大小写不同的值被视为不相等
如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,只想检查变量的值,可将变量的值转换为小写,再进行比较

5.2.3 检查是否不相等

要判断两个值是否不等,可结合使用惊叹号和等号( != ),其中的惊叹号表示不,其他很多编程语言中也是如此。
下面再使用一条if 语句来演示如何使用不等运算符。我们将把要求的比萨配料赋给一个变量,再打印一条消息,指出顾客要求的配料是否是意式小银鱼(anchovies)
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
    print("Hold the anchovies!")
代码行将 requested_topping 的值与 'anchovies' 进行比较。如果这两个值不相等,Python将返回 True ,进而执行紧跟在 if 语句后面的代码;如果相等,Python将返回 False ,因此不执行紧跟在 if 语句后面的代码。
因为 requested_topping 的值不是 'anchovies' ,所以执行函数调用print()
Hold the anchovies!

5.2.4 数值比较

检查数值非常简单。例如,下面的代码检查一个人是否是18岁:

>>> age = 18
>>> age == 18
True

 条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于

5.2.5 检查多个条件

你可能想同时检查多个条件。例如,有时候需要在两个条件都为 True 时才执行相应的操作,而有时候只要求一个条件为 True 。在这些情况下,关键字 and 和or可助你一臂之力。

 a. 使用and 检查多个条件

要检查是否两个条件都为 True ,可使用关键字 and 将两个条件测试合二为一。如果每个测试都通过了,整个表达式就为 True ;如果至少一个测试没有通过,整个表达式就为 False
为改善可读性,可将每个测试分别放在一对圆括号内,但并非必须这样做。

 b. 使用or检查多个条件

关键字 or 也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用 or 的表达式才为 False
注意        python也存在短路求值
>>> age_0 = 22
>>> age_1 = 30
>>> age_0 < 25 or age_1 < 25
True

 5.2.6 检查特定值是否包含在列表中

要判断特定的值是否已包含在列表中,可使用关键字in 。下面来看看你可能为比萨店编写的一些代码。这些代码首先创建一个列表,其中包含用户点的比萨配料,然后检查特定的配料是否包含在该列表中。
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
关键字 in Python 检查列表 requested_toppings 是否包含 'mushrooms' 'pepperoni' 。这种技术很有用,让你能够在创建一个列表后,轻松地检查其中是否包含特定的值。

 5.2.7 检查特定值是否不包含在列表中

还有些时候,确定特定的值未包含在列表中很重要。在这种情况下,可使用关键字not in 。例如,有一个列表,其中包含被禁止在论坛上发表评论的用户,可以在允许用户提交评论前检查他是否被禁言:
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'

if user not in banned_users:
    print(f"{user.title()}, you can post a response if you wish.")
的代码行明白易懂:如果 user 的值未包含在列表 banned_users 中,Python将返回 True ,进而执行缩进的代码行。
用户 'marie' 未包含在列表 banned_users 中,因此她将看到一条邀请她发表评论的消息:
Marie, you can post a response if you wish.

5.2.8 布尔表达式

随着你对编程的了解越来越深入,将遇到术语
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值