Python入门第12课-if语句之条件测试
off999 2024-10-04 00:27 43 浏览 0 评论
本节先讲一下条件测试,然后再讲if语句。
12.1 一个简单的示例
下面的示例演示了如何使用if语句来正确处理特殊情形:
# -*- coding:utf-8 -*-
# 年龄列表
ages = [19,8,18,29]
# 循环遍历列表
for age in ages:
if age >= 18:
print("你长大了,可以学开车了")
else:
print("你还是个孩子,一边玩去")
上述示例的循环中,首先检查当前年龄是否大于等于18,如果是,就打印"你长大了,可以学开车了";否则就打印"你还是个孩子,一边玩去":
你长大了,可以学开车了
你还是个孩子,一边玩去
你长大了,可以学开车了
你长大了,可以学开车了
这个示例包含了接下来要介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。
12.2 条件测试
每条if语句的核心都是一个值为True 或 False 的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果值为True,Python将执行紧跟在if语句后面的的代码;如果值为False,Python就忽略这些代码。
12.2.1 检查是否相等
大多数条件测试都将一个变量的当前值与特定值进行比较,最简单的条件测试是检查变量的值是否与特定值相等:
① >>> age = 18
② >>> age == 18
③ True
第①行 使用等号将 age 的值设为18;
第②行 使用两个等号检查age的值是否为18,这个相等运算符在它两边的值相等时返回True,否则返回False 。这个示例中,两边的值相等,因此返回True。
12.2.2 检查是否相等时考虑不大小写
检查是否相等时区分大小写,例如,两个大小写不同的值会被认为不相等:
>>> name = 'lucy'
>>> name == 'LUCY'
False
如果大小写很重要,这种行为有其优点,但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较:
>>> name = 'Lucy'
>>> name.lower() == 'lucy'
True
无论值'Lucy'的大小写如何,上述代码都将返回True,因为该测试不区分大小写。函数lower()不会修改存储在变量car中值,因此进行这样的比较时不影响原来的变量:
>>> name = "Lucy"
>>> name.lower() == "lucy"
True
>>> name
"Lucy"
网站采用类似的方式让用户输入的数据符合特定的格式。例如,为了确保用户名是唯一的,而并非只是与另一个用户名的大小写不同。用户注册时将用户名转换为小写,并与所有既有用户名的小写进行比较,如果存在相同,则拒绝用户当前的注册。
12.2.3 检查是否不相等
判断两个值是否不相等,是否惊叹号和等号(!=),惊叹号表示不,在很多编程语言中都如此。
例如,网站将用户'lucy'拉入了黑名单,那么这个用户将无权访问页面:
# -*- coding:utf-8 -*-
# 用户列表
names = ['xiaoming','lucy','lilei']
for name in names:
# 判断用户是否属于黑名单用户
① if name != 'lucy':
print("欢迎访问Python公开课")
② else:
print("对不起,你无权访问该页面")
第①行 代码判断 name 的值与 'lucy'进行比较,若它们不相等,则返回True,进而执行紧跟在if语句后面的代码;如果这两个值相等,则返回False,不执行紧跟在if语句后面的代码,而执行 第②行的代码。
上述代码执行结果:
欢迎访问Python公开课
对不起,你无权访问该页面
欢迎访问Python公开课
有时候检查两个值是否不相等的效率,比检查两个值相等的效率要高,两种方式根据实际场景进行应用。
12.2.4 其他比较运算符
比较数字时,除了检查是否相等、不相等,还有小于(<)、小于等于(<=)、大于(>)、大于等于(>=):
>>> age = 22
>>> age < 18
False
>>> age <= 18
Fasle
>>> age > 18
True
>>> age >= 18
True
在if语句中,可使用各种运算符比较数字。
12.2.5 检查多个条件
有时候,需要检查多个条件都为True时才执行相应的操作,有时候,只要求多个条件中的一个为True时就执行相应的操作,这两种情况下,分别使用关键字and 和 or 来实现。
1. 使用and检查多个条件
关键字 and 将多个条件测试合而为一,如果多个条件都为True,则整个表达式就为True;如果至少有一个条件为False,则整个表达式就为False。例如,检查两个人是否都不小于18岁:
>>> age_1 = 22
>>> age_2 = 17
① >>> age_1 >= 18 and age_2 >= 18
False
② >>> age_2 = 20
③ >>> age_1 >= 18 and age_2 >= 18
True
先定义两个变量用于存储年龄;
① 处检查两个变量是否都不小于18,左边的表达式通过了,为True,但是右边没有通过,为False,因此整个表达式的结果为False。
② 处将age_2的值改为20,这样age_2的值就大于18了,因此③处检查时这两个条件测试均通过了,整个条件表达式的结果为True。
为了改善可读性,可将每个测试都分别放在一个括号内,这样看起来更直观:
(age_1 >= 18) and (age_2 >= 18)
2. 使用 or 检查多个条件
关键字 or 也能检查多个条件,但只要有一个条件为True,则整个表达式为True,仅当多个条件均为Fasle时,整个表达式才为Fasle。
例如,检查两个人的年龄是否至少有一人是大于18岁:
>>> age_1 = 22
>>> age_2 = 17
① >>> (age_1 >= 18) or (age_2 >= 18)
True
② >>> age_1 = 10
③ >>> (age_1 >= 18) or (age_2 >= 18)
False
第①行 两个条件中,左边的条件为True,右边就不判断了,整个表达式结果为True;
第③行 两个条件中,左边的条件为False,继续判断右边的条件,也为Fasle,则整个表达式结果为False。
12.2.6 检查特定值是否包含在列表中
有时候,执行操作前需要检查列表中是否已包含某个特定的值。例如,用户注册时,需要检查其手机号是否已被注册。
要判断特定的值是否已包含在列表中,可使用关键字 in ,例如,判断用户名是否已被注册:
① >>> user_name = ['lucy','lilei']
② >>> 'lucy' in user_name
True
③ >>> 'leifeng' in user_name
False
第②行 关键字 in 让Python 检查列表user_name是否包含'lucy' 和 'leifeng'。这种方法很有用,让你能够在创建一个列表后,轻松的检查其中是否包含某个特定的值。
还有些时候,需要检查特定的值是否不包含在列表中,可使用关键字 not in:
① >>> user_name = ['lucy','lilei']
② >>> 'lucy' not in user_name
False
③ >>> 'leifeng' not in user_name
True
两种方式根据实际应用场景进行选择。
12.2.7 布尔表达式
随着对编程的了解越来越深入,将遇到术语布尔表达式,布尔表达式是条件测试的别名,与条件表达式一样,布尔表达式的结果要么为真(True),要么为假(False)。
布尔值通常用于记录条件,如游戏是否正在运行,或用户是否可以编辑网站的特定内容:
game_active = True
can_edit = False
在跟踪程序状态或程序中重要的条件方面,布尔值提供了一种高效的方式。
12.3 实例练习
为了方便大家系统性的学习知识和参与项目实战,希望大家关注文章下方的广告区推广的号,是我自己运营的,头条上面很多想做的事情受到了极大的限制,知识内容无法形成结构性,也不方便交流,很多的互动和活动都在那个号上,欢迎加入,感谢支持~
实例1:
编写一系列条件测试,将每个测试以及你对其结果的预测和实际结果都打印出来,代码应类似于这样:
# -*- coding:utf-8 -*-
name = 'lucy'
print("name == 'lucy' 吗?我觉得结果为True")
print(name == 'lucy')
print("\nname == 'leifeng' 吗?我觉得结果为False")
print(name == 'leifeng')
条件测试可以稍微复杂些,知道明白了为什么为True或False
实例2:
完成以下条件测试
① 检查两个字符串相等和不相等
② 使用函数lower()对字符串进行转换,并比较
③ 检查两个数字相等、不等、大于、小于、大于等于、小于等于
④ 使用关键字 and 和 or 的测试
⑤ 测试特定的值是否包含在列表中
⑥ 测试特定的值是否不包含在列表中
相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
16949认证费用是多少(16949审核员太难考了)
-
linux软件(linux软件图标)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
windows7旗舰版多少钱(win7旗舰版要多少钱)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
