| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 5-if语句(选择结构) -> 正文阅读 |
|
[Python知识库]5-if语句(选择结构) |
编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并采取相应的措施。 5.1 一个简单示例对于大多数汽车,应以首字母大写的方式打印其名称,但对于汽车名'bmw',应以全大写的方式打印。
5.2 条件测试(即条件表达式)每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试。 5.2.1 检查是否相等使用相等运算符(==) 5.2.2 检查是否相等时忽略大小写在Python中检查是否相等时区分大小写。 如果大小写无关紧要,只想检查变量的值,可将变量的值转换为小写,再进行比较:
结果: True 函数lower()不会修改最初赋给变量car的值。 5.2.3 检查是否不相等要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示不。 你编写的大多数条件表达式检查两个值是否相等,但有时候检查两个值是否不等的效率更高。 5.2.4 数值比较检查数值非常简单,可以判断相等、不等。 条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于。 5.2.5 检查多个条件使用and检查多个条件:条件测试都为Ture,整个表达式为True,否则为False。
为改善可读性,可将每个测试分别放在一对圆括号内。? 使用or检查多个条件:?只要有一个条件测试为True时,结果为True,只有都为False,结果才为False。 5.2.6 检查特定值是否包含在列表中要判断特定的值是否已包含在列表中,可使用关键字in。
5.2.7 检查特定值是否不包含在列表中使用关键字not in。
5.2.8 布尔表达式条件测试的别名。 布尔值通常用于记录条件,如游戏是否正在运行,或者用户是否可以编辑网站的特定内容。 动手试一试练习5-1:条件测试 编写一系列条件测试,将每个测试以及对其结果的预测和实际结果打印出来。你编写的代码应类似于下面这样:▲ 详细研究实际结果,直到你明白它为何为True或False。 ▲ 创建至少10个测试,且其中结果分别为True和False的测试都至少有5个。 ?练习5-2:更多条件测试 你并非只能创建10个测试。如果想尝试做更多比较,可再编写一些测试,并将它们加入conditional_tests.py中。对于下面列出的各种情况,至少编写两个结果分别为True和False的测试。 ▲ 检查两个字符串相等和不等。 ▲ 使用方法lower()的测试。 ▲ 涉及相等、不等、大于、小于、大于等于和小于等于的数值测试。 ▲ 使用关键字and和or的测试。 ▲ 测试特定的值是否包含在列表中。 ▲ 测试特定的值是否未包含在列表中。 5.3 if语句5.3.1 简单的if语句最简单的if语句只有一个测试和一个操作:
5.3.2 if-else语句
if-else结构非常适合用于让Python执行两种操作之一的情形。? 5.3.3 if-elif-else结构Python只执行if-elif-else结构中的一个代码块。
5.3.4 使用多个elif代码块
5.3.5 省略else代码块Python并不要求if-elif结构后面必须有else代码块。
经过这样的修改后,每个代码块都仅在通过了相应的测试时才会执行。 如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。 5.3.6 测试每个条件有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含elif和else代码块的简单if语句。在可能有多个条件为True且需要在每个条件为True时都采取相应措施时,适合使用这种方法。 例如:店家提供了一系列披萨配料,每种配料都要去测试下,是否是顾客要求添加的:
如果只想执行一个代码块,就使用if-elif-else结构;如果要执行多个代码块,就使用一系列独立的if语句。 动手试一试练习5-3:外星人颜色 假设在游戏中刚射杀了一个外星人,请创建一个名为alien_color的变量,并将其赋值为'green'、'yellow'或'red'。▲ 编写一条if语句,检查外星人是否是绿色的。如果是,就打印一条消息,指出玩家获得了5分。▲ 编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版本中未通过(未通过测试时没有输出)。 练习5-4:外星人颜色2 像练习5-3那样设置外星人的颜色,并编写一个if-else结构。▲ 如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5分。▲ 如果外星人不是绿色的,就打印一条消息,指出玩家获得了10分。▲ 编写这个程序的两个版本,在一个版本中执行if代码块,在另一个版本中执行else代码块。 练习5-5:外星人颜色3 将练习5-4中的if-else结构改为if-elif-else结构。▲ 如果外星人是绿色的,就打印一条消息,指出玩家获得了5分。▲ 如果外星人是黄色的,就打印一条消息,指出玩家获得了10分。▲ 如果外星人是红色的,就打印一条消息,指出玩家获得了15分。▲ 编写这个程序的三个版本,分别在外星人为绿色、黄色和红色时打印一条消息。 练习5-6:人生的不同阶段 设置变量age的值,再编写一个if-elif-else结构,根据age的值判断一个人处于人生的哪个阶段。▲ 如果年龄小于2岁,就打印一条消息,指出这个人是婴儿。▲ 如果年龄为2(含)~4岁,就打印一条消息,指出这个人是幼儿。▲ 如果年龄为4(含)~13岁,就打印一条消息,指出这个人是儿童。▲ 如果年龄为13(含)~20岁,就打印一条消息,指出这个人是青少年。▲ 如果年龄为20(含)~65岁,就打印一条消息,指出这个人是成年人。▲ 如果年龄超过65岁(含),就打印一条消息,指出这个人是老年人。 练习5-7:喜欢的水果 创建一个列表,其中包含你喜欢的水果,再编写一系列独立的if语句,检查列表中是否包含特定的水果。▲ 将该列表命名为favorite_fruits,并在其中包含三种水果。编写5条if语句,每条都检查某种水果是否包含在列表中。如果是,就打印一条消息,下面是一个例子。You really like bananas! 5.4 使用if语句处理列表5.4.1 检查特殊元素按前面一个示例的需求,我们只需要这样做,就能打印出顾客想要添加的披萨:
但假如french fries没有了,我们就要检查这个特殊配料,做单独处理:
5.4.2 确定列表不是空的在if语句中将列表名用作条件表达式时,Python将在列表至少包含一个元素时返回True,并在列表为空时返回False。
5.4.3 使用多个列表打印店家不能提供给顾客要求的配料,同时打印出能提供顾客要求的配料:
动手试一试练习5-8:以特殊方式跟管理员打招呼 创建一个至少包含5个用户名的列表,且其中一个用户名为'admin'。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。如果用户名为'admin',就打印一条特殊的问候消息,如下所示。Hello admin, would you like to see a status report?否则,打印一条普通的问候消息,如下所示。Hello Jaden, thank you for logging in again.? 练习5-9:处理没有用户的情形 在为完成练习5-8编写的程序中,添加一条if语句,检查用户名列表是否为空。如果为空,就打印如下消息。We need to find some users!删除列表中的所有用户名,确定将打印正确的消息。? 练习5-10:检查用户名 按下面的说明编写一个程序,模拟网站如何确保每位用户的用户名都独一无二。▲ 创建一个至少包含5个用户名的列表,并将其命名为current_users。▲ 再创建一个包含5个用户名的列表,将其命名为new_users,并确保其中有一两个用户名也包含在列表current_users中。▲ 遍历列表new_users,对于其中的每个用户名,都检查它是否已被使用。如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。▲ 确保比较时不区分大小写。换句话说,如果用户名'John'已被使用,应拒绝用户名'JOHN'。(为此,需要创建列表current_users的副本,其中包含当前所有用户名的小写版本。)? 练习5-11:序数 序数表示位置,如1st和2nd。序数大多以th结尾,只有1、2和3例外。▲ 在一个列表中存储数字1~9。▲ 遍历这个列表。▲ 在循环中使用一个if-elif-else结构,以打印每个数字对应的序数。输出内容应为"1st2nd 3rd 4th 5th 6th 7th 8th 9th",但每个序数都独占一行。 5.5 设置if语句的格式在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如==、>=和<=等比较运算符两边各添加一个空格。 动手试一试练习5-12:设置if语句的格式 审核你在本章编写的程序,确保正确地设置了条件测试的格式。 练习5-13:自己的想法 与刚拿起本书时相比,现在你是一名能力更强的程序员了。鉴于你对如何在程序中模拟现实情形有了更深入的认识,可以考虑使用程序来解决一些问题了。随着编程技能不断提高,你可能想解决一些问题,请将这方面的想法记录下来。想想你可能想编写的游戏、想研究的数据集以及想创建的Web应用程序。 5.6 小结在本章中,你学习了:如何编写结果要么为True要么为False的条件测试;如何编写简单的if语句、if-else语句和if-elif-else结构,并且在程序中使用这些结构来测试特定的条件,以确定这些条件是否满足;如何在利用高效的for循环的同时,以不同于其他元素的方式对特定的列表元素进行处理。你还再次学习了Python就代码格式提出的建议,从而确保即便编写的程序越来越复杂,其代码依然易于阅读和理解。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 4:10:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |