Python编程从入门到实践 第五章:if语句 练习答案记录

news2025/1/15 21:05:49

Python编程从入门到实践 第五章:if语句 练习答案记录

练习题导航

  • Python编程从入门到实践 第五章:if语句 练习答案记录
  • 5.1 一个简单示例
  • 5.2 条件测试
    • 5.2.1 检查是否相等
    • 5.2.2 检查是否相等时忽略大小写
    • 5.2.3 检查是否不相等
    • 5.2.4 数值比较
    • 5.2.5 检查多个文件
    • 5.2.6 检查特定值是否包含在列表中
    • 5.2.7 检查特定值是否不包含列表中
    • 5.2.8 布尔表达式
      • 练习 5-1 条件测试 : 编写一系列条件测试; 将每个测试以及你对其结果的预测和实际结果都打印出来。 你编写的代码应类似于下面这样:
      • 练习 5-2 更多的条件测试 : 你并非只能创建10个测试。 如果你想尝试做更多的比较, 可再编写一些测试,并将它们加入到conditional_tests.py中。 对于下面列出的各种测试, 至少编写一个结果为True 和False 的测试。
  • 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 外星人颜色#1 : 假设在游戏中刚射杀了一个外星人, 请创建一个名为alien_color 的变量, 并将其设置为'green' 、'yellow' 或'red' 。编写一条if 语句, 检查外星人是否是绿色的; 如果是, 就打印一条消息, 指出玩家获得了5个点。编写这个程序的两个版本, 在一个版本中上述测试通过了, 而在另一个版本中未通过(未通过测试时没有输出) 。
      • 练习5-4 外星人颜色#2 : 像练习5-3那样设置外星人的颜色, 并编写一个if-else 结构。
      • 练习 5-5 外星人颜色#3 : 将练习5-4中的if-else 结构改为if-elif-else 结构。
      • 练习5-6 人生的不同阶段 : 设置变量age 的值, 再编写一个if-elif-else 结构, 根据age 的值判断处于人生的哪个阶段。
      • 练习 5-7 喜欢的水果 : 创建一个列表, 其中包含你喜欢的水果, 再编写一系列独立的if 语句, 检查列表中是否包含特定的水果。将该列表命名为favorite_fruits , 并在其中包含三种水果。编写5条if 语句, 每条都检查某种水果是否包含在列表中, 如果包含在列表中, 就打印一条消息, 如“You really like bananas!”。
  • 5.4 使用if语句处理列表
    • 5.4.1 检查特殊元素
    • 5.4.2 确定列表不是空的
    • 5.4.3 使用多个列表
      • 练习 5-8 以特殊方式跟管理员打招呼 : 创建一个至少包含5个用户名的列表, 且其中一个用户名为'admin' 。
      • 练习5-9 处理没有用户的情形 : 在为完成练习5-8编写的程序中, 添加一条if 语句, 检查用户名列表是否为空。
      • 练习5-10 检查用户名 : 按下面的说明编写一个程序, 模拟网站确保每位用户的用户名都独一无二的方式。
      • 练习5-11 序数 : 序数表示位置, 如1st和2nd。 大多数序数都以th结尾, 只有1、 2和3例外。
  • 5.5 设置if语句的格式
      • 练习5-12 设置if 语句的格式 : 审核你在本章编写的程序, 确保正确地设置了条件测试的格式。
      • 练习5-13 自己的想法 : 与刚拿起本书时相比, 现在你是一名能力更强的程序员了。 鉴于你对如何在程序中模拟现实情形有了更深入的认识, 你可以考虑使用程序来解决一些问题。 随着编程技能不断提高, 你可能想解决一些问题, 请将这方面的想法记录下来。 想想你可能想编写的游戏、 想研究的数据集以及想创建的Web应用程序。
  • 5.6 小结

5.1 一个简单示例

5.2 条件测试

5.2.1 检查是否相等

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

5.2.3 检查是否不相等

5.2.4 数值比较

5.2.5 检查多个文件

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

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

5.2.8 布尔表达式

练习 5-1 条件测试 : 编写一系列条件测试; 将每个测试以及你对其结果的预测和实际结果都打印出来。 你编写的代码应类似于下面这样:

car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')
print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')

详细研究实际结果, 直到你明白了它为何为True 或False 。 创建至少10个测试, 且其中结果分别为True 和False 的测试都至少有5个。

str=['a','b','c']
for st in str:
    if 'a' in st:
        print('Yes')
    else:
        print('No')

if str[0]=='a':
    print("true")

if str[0]!='a':
    print('fasle')

if str[0]=='a' and str[1]=='b':
    print('true')

if str[0]=='a' or str[0]=='b':
    print('true')

在这里插入图片描述

练习 5-2 更多的条件测试 : 你并非只能创建10个测试。 如果你想尝试做更多的比较, 可再编写一些测试,并将它们加入到conditional_tests.py中。 对于下面列出的各种测试, 至少编写一个结果为True 和False 的测试。

检查两个字符串相等和不等。

str1=['a','b','c']
str2=['A','B','C']
if str1==str2:
    print('yes')
else:
    print('no')

在这里插入图片描述

使用函数lower() 的测试。

str1=['a','b','c']
str2=['A','B','C']
"""if str1==str2:
    print('yes')
else:
    print('no')"""

if str1[0]==str2[0].lower():
    print('yes')
if str1[0]==str2[0].lower():
    print('yes')

在这里插入图片描述

检查两个数字相等、 不等、 大于、 小于、 大于等于和小于等于。

a=10
b=1
if a>b:
    print('yes')
else:
    print('no')
if a>=b:
    print('yes')
else:
    print('no')
if a==b:
    print('yes')
else:
    print('no')
if a!=b:
    print('yes')
else:
    print('no')

在这里插入图片描述

使用关键字and 和or 的测试。
测试特定的值是否包含在列表中。
测试特定的值是否未包含在列表中。

str=['a','b','c']
for st in str:
    if 'a' in st:
        print('Yes')
    else:
        print('No')

if str[0]=='a':
    print("true")

if str[0]!='a':
    print('fasle')

if str[0]=='a' and str[1]=='b':
    print('true')

if str[0]=='a' or str[0]=='b':
    print('true')

在这里插入图片描述

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 外星人颜色#1 : 假设在游戏中刚射杀了一个外星人, 请创建一个名为alien_color 的变量, 并将其设置为’green’ 、‘yellow’ 或’red’ 。编写一条if 语句, 检查外星人是否是绿色的; 如果是, 就打印一条消息, 指出玩家获得了5个点。编写这个程序的两个版本, 在一个版本中上述测试通过了, 而在另一个版本中未通过(未通过测试时没有输出) 。

alien_color = ['green','red','yellow']
if 'green' in alien_color:
    print('get 5')
else:
    print('get -5')

在这里插入图片描述

练习5-4 外星人颜色#2 : 像练习5-3那样设置外星人的颜色, 并编写一个if-else 结构。

如果外星人是绿色的, 就打印一条消息, 指出玩家因射杀该外星人获得了5个点。 如果外星人不是绿色的, 就打印一条消息,
指出玩家获得了10个点。 编写这个程序的两个版本, 在一个版本中执行if 代码块, 而在另一个版本中执行else 代码块。

alien_color = ['green','red','yellow']
if 'green' in alien_color:
    print('get 5')
else:
    print('get 10')

练习 5-5 外星人颜色#3 : 将练习5-4中的if-else 结构改为if-elif-else 结构。

如果外星人是绿色的, 就打印一条消息, 指出玩家获得了5个点。
如果外星人是黄色的, 就打印一条消息, 指出玩家获得了10个点。
如果外星人是红色的, 就打印一条消息, 指出玩家获得了15个点。
编写这个程序的三个版本, 它们分别在外星人为绿色、黄色和红色时打印一条消息。

alien_color = ['green','red','yellow']
if 'green' in alien_color:
    print('get 5')
elif 'yello'in alien_color:
    print('get 10')
else:
    print('get 15')

在这里插入图片描述

练习5-6 人生的不同阶段 : 设置变量age 的值, 再编写一个if-elif-else 结构, 根据age 的值判断处于人生的哪个阶段。

如果一个人的年龄小于2岁, 就打印一条消息, 指出他是婴儿。
如果一个人的年龄为2(含) ~4岁, 就打印一条消息, 指出他正蹒跚学步。
如果一个人的年龄为4(含) ~13岁, 就打印一条消息, 指出他是儿童。
如果一个人的年龄为13(含) ~20岁, 就打印一条消息,指出他是青少年。
如果一个人的年龄为20(含) ~65岁, 就打印一条消息, 指出他是成年人。
如果一个人的年龄超过65(含) 岁,就打印一条消息, 指出他是老年人。

age=70
if age<2:
    print('baby')
elif age<4:
    print('babys')
elif age<13:
    print('students')
elif age<20:
    print('young')
elif age<65:
    print('older')
else:
    print('olders')

在这里插入图片描述

练习 5-7 喜欢的水果 : 创建一个列表, 其中包含你喜欢的水果, 再编写一系列独立的if 语句, 检查列表中是否包含特定的水果。将该列表命名为favorite_fruits , 并在其中包含三种水果。编写5条if 语句, 每条都检查某种水果是否包含在列表中, 如果包含在列表中, 就打印一条消息, 如“You really like bananas!”。

favorite_fruits=['a','b','c']
if 'a' in favorite_fruits:
    print(f"You really like a")
if 'b' in favorite_fruits:
    print(f"You really like b")
if 'c' in favorite_fruits:
    print(f"You really like c")

在这里插入图片描述

5.4 使用if语句处理列表

5.4.1 检查特殊元素

5.4.2 确定列表不是空的

5.4.3 使用多个列表

练习 5-8 以特殊方式跟管理员打招呼 : 创建一个至少包含5个用户名的列表, 且其中一个用户名为’admin’ 。

想象你要编写代码,在每位用户登录网站后都打印一条问候消息。
遍历用户名列表, 并向每位用户打印一条问候消息。如果用户名为’admin’ , 就打印一条特殊的问候消息, 如“Hello admin, would you like to see a status report?”。否则, 打印一条普通的问候消息, 如“Hello Eric, thank you for logging in again”。

name=['a','admin','b','c','d']
for na in name:
    if na=='admin':
        print('Hello admin, would you like to see a status report?')
    else:
        print('Hello Eric, thank you for logging in again')

在这里插入图片描述

练习5-9 处理没有用户的情形 : 在为完成练习5-8编写的程序中, 添加一条if 语句, 检查用户名列表是否为空。

如果为空, 就打印消息“We need to find some users!”。
删除列表中的所有用户名, 确定将打印正确的消息。

name=['a','admin','b','c','d']
if name:
    print('We need to find some users!')
for na in name:
    if na=='admin':
        print('Hello admin, would you like to see a status report?')
    else:
        print('Hello Eric, thank you for logging in again')

在这里插入图片描述

练习5-10 检查用户名 : 按下面的说明编写一个程序, 模拟网站确保每位用户的用户名都独一无二的方式。

创建一个至少包含5个用户名的列表, 并将其命名为current_users 。 再创建一个包含5个用户名的列表,
将其命名为new_users , 并确保其中有一两个用户名也包含在列表current_users 中。 遍历列表new_users ,
对于其中的每个用户名, 都检查它是否已被使用。 如果是这样, 就打印一条消息, 指出需要输入别的用户名; 否则, 打印一条消息,
指出这个用户名未被使用。 确保比较时不区分大消息; 换句话说, 如果用户名’John’ 已被使用, 应拒绝用户名’JOHN’ 。

current_users=['A','b','c','d','e']
current_users_1=[]
for cu in current_users:
    current_users_1.append(cu.lower())
new_users=['k','a','d','e','f']
for cu in current_users and current_users_1:
    if cu in new_users:
        print(f"{cu} 已被使用,需要输出别的用户名")
    else:
        print(f"{cu} 未被使用")

在这里插入图片描述

练习5-11 序数 : 序数表示位置, 如1st和2nd。 大多数序数都以th结尾, 只有1、 2和3例外。

在一个列表中存储数字1~9。 遍历这个列表。
在循环中使用一个if-elif-else 结构, 以打印每个数字对应的序数。 输出内容应为
1st 、 2nd 、 3rd 、 4th 、 5th 、 6th 、 7th 、 8th 和9th , 但每个序数都独占一行。

a=list(range(1,10))
for aa in a:
 if aa==1:
     print("1st")
 elif aa==2:
     print("2nd")
 else:
     print(f"{aa}th")

在这里插入图片描述

5.5 设置if语句的格式

练习5-12 设置if 语句的格式 : 审核你在本章编写的程序, 确保正确地设置了条件测试的格式。

练习5-13 自己的想法 : 与刚拿起本书时相比, 现在你是一名能力更强的程序员了。 鉴于你对如何在程序中模拟现实情形有了更深入的认识, 你可以考虑使用程序来解决一些问题。 随着编程技能不断提高, 你可能想解决一些问题, 请将这方面的想法记录下来。 想想你可能想编写的游戏、 想研究的数据集以及想创建的Web应用程序。

5.6 小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运行yolov5 v6遇到的问题

1. Arial.ttf无法在运行时下载的问题 可以选择用浏览器下载&#xff0c;然后拷贝到docker或者ubuntu下&#xff0c;创建服务器的http访问方式。 具体为&#xff1a; 1.1 下载文件 Arial.ttf 并拷贝到docker或者ubuntu下 1.2 在ubuntu下创建http访问方式&#xff1a; # 安装…

有限元仿真分析误差来源之边界条件,约束和point mass

导读&#xff1a;前不久&#xff0c;我在这里分享了一篇《有限元仿真分析误差来源之材料参数设置&#xff0c;小心为妙》的文章&#xff0c;引发了同行们的关注和讨论。在此感谢仿真秀平台讲师们的批评和指正&#xff0c;一起认真交流技术和进步。今天我将继续带来关于边界条件…

spring data jpa在mysql分页中的实例(一次访问同时获取数据和总数)

一、原生sql语句 mysql中语句如下 select SQL_CALC_FOUND_ROWS sn,max(count) as active_count from sn_state_changed where sn_year zz group by sn limit 0,10; select FOUND_ROWS() as total; 解释&#xff1a; SQL_CALC_FOUND_ROWS 供后面的查询总数sql语句使…

(STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(1)

上一篇&#xff1a; (STM32)从零开始的RT-Thread之旅--GPIO 我使用的开发板是WeAct的H743板子&#xff0c;板子带一个0.96的SPI驱动的LCD&#xff0c;给的有现成的测试用例&#xff0c;看源码应该是ST的工程师写的ST7735的驱动&#xff0c;打算把这个驱动直接拿到RTT工程里面使…

SolidWorks 入门笔记01:草图绘制

全文目录简介1. 草图的创建1.1 在基准面上新建一个二维草图多学一招&#xff1a;退出草图绘制模式&#xff0c;快捷键切换视图1.2 从已有的草图派生新的草图。1.3 在零件的平面上绘制草图多学一招&#xff1a;SolidWorks 中鼠标滚轮放大缩小功能反的解决办法 。2. 基本图形绘制…

【2022秋线上作业-第5次-第11-13周】判断题

1-1 一棵有124个结点的完全二叉树&#xff0c;其叶结点个数是确定的。T 解析&#xff1a; 一棵124个叶节点的完全二叉树&#xff0c;假设n0为叶子节点数&#xff0c;n1为度为1结点数&#xff0c;n2为度为2结点数&#xff0c;则有总结点数为n0n1n2&#xff1b;而n2n0-1123&#…

如何杜绝 spark history server ui 的未授权访问?

如何杜绝 spark history server ui 的未授权访问? 1 问题背景 默认状况下&#xff0c;Spark history Sever ui 是没有任何访问控制机制的&#xff0c;任何用户只要知道 shs 对应的 url&#xff0c;就可以访问链接查看 spark 作业的运行状况。 在证券基金银行等金融行业中&a…

Kotlin 开发Android app(六):Kotlin 中的空判断 问号和感叹号

如果有人对程序的崩溃原因做下统计的话&#xff0c;那么由于对象为空&#xff0c;但是又访问了对象的某个属性而导致的崩溃&#xff0c;也许会是程序崩溃的第一大原因了。 比如我们在使用字符串的时候&#xff0c;变量字符串为空的时候&#xff0c;我们去访问了这个字符串变量的…

2022-11-16 每日打卡:单调栈解决最大矩形问题(一维直方图,二维最大红矩形)

每日打卡&#xff1a;单调栈解决最大矩形问题&#xff08;一维直方图&#xff0c;二维最大红矩形&#xff09; 柱状图中最大的矩形 思路 这个题最明显的思路就是&#xff1a;矩形面积底高。 版本1&#xff1a;底的长度可以通过二重循环来完成&#xff0c;高通过循环来寻找最…

44、Spring AMQP 数据转换器

1、操作案例 2、发送一个对象到队列中 3、控制台查看 4、使用消息转换器 5、消费者接收消息&#xff0c; 传递什么类型&#xff0c;就接受什么类型&#xff0c;发送方与接收方所使用的消息转换器必须对应 6、总结分析 默认的消息推送是通过JDK序列化的方式进行的&#xff0c;…

【STM32+cubemx】0029 HAL库开发:HMC5883L磁力计的应用(电子指南针)

今天我们来学习电子磁力计HMC5883L的使用。先介绍磁力计的基础知识&#xff0c;再给一个获取磁力计数据的例子&#xff0c;最后讲解HMC5883L磁力计的校准&#xff0c;以及一些使用中的经验。 1&#xff09;HMC5883L磁力计的基础知识 磁力计是用来测量磁场强弱&#xff08;也就…

Android 录音没有声音,设置AudioSource.VOICE_CALL直接MediaRecorder.start异常等系列问题

一、我的需求&#xff1a;来电后&#xff0c;我的三方应用主动开启录音&#xff0c;挂断后结束录音&#xff0c;查验音频 我遇到的问题&#xff1a;录制的音频没有声音。 通过各种尝试&#xff0c;结果如下 &#xff1a;设置不同的录音来源的效果 MediaRecorder API\创建MediaR…

Springboot 结合 MQTT、Redis ,对接硬件以及做消息分发,最佳实践

Springboot 结合 mqtt、redis对接硬件以及做消息分发&#xff0c;最佳实践 一&#xff0c;认识 需要了解EMQX 基本知识原理&#xff0c;不了解的可以查看我之间的博客&#xff0c;以及网上的资料&#xff0c;这里不在过多撰述。 二&#xff0c;开发思路 这里以对接雷达水位计…

【最优化理论】03-无约束优化

无约束优化无约束优化问题无约束优化问题的应用无约束优化问题的最优性条件无约束-凸函数-最优性条件&#xff08;充要&#xff09;无约束-一般函数-最优性条件必要条件一阶必要条件&#xff1a;梯度为0二阶必要条件&#xff1a;hessian矩阵半正定充分条件二阶充分条件&#xf…

元宇宙-漫游世界后与Cocos一起看湖南卫视直播

使用参考资源 CocosCreator v3.6.2 cocomat 腾讯开源公共组件框架 Cocos Creator 3D特制 Video MeshRender 播放器&#xff08;Cocos商店购买&#xff09; TcPlayer 腾讯开源 Web 播放器 视频流 hls 库 正文 场景漫游引发的思考 元宇宙&#xff0c;虚拟世界。OK&#xff0c;…

【UI编程】将Java awt/swing应用移植到JavaFX纪实

1. 背景 最近想做一个实用的小工具&#xff0c;能屏幕截图&#xff0c;录屏和录制课件&#xff0c;简单的图像处理&#xff0c;和制作gif表情包。翻出了很久以前用Java awt/swing写的一个屏幕截图小程序&#xff0c;能运行&#xff0c;但是屏幕截图到剪贴板后&#xff0c;发现…

深入理解JavaScript-this关键字

先说结论&#xff1a;谁调用它&#xff0c;this 就指向谁 前言 在讲 Function、作用域 时&#xff0c;我们都讲到了 this&#xff0c;因为 JavaScript 中的作用域是词法作用域&#xff0c;在哪里定义&#xff0c;就在哪里形成作用域。而与词法作用域相对应的还有一个作用域叫…

MP157-0-遇见的问题及解决办法

MP157-0-遇见的问题及解决办法1.Win11运行VMware15虚拟机崩溃死机&#xff0c;蓝屏。1.Win11运行VMware15虚拟机崩溃死机&#xff0c;蓝屏。 时间&#xff1a;2022.11.15 解决办法&#xff1a; Hyper-V方案。 打开控制面板-程序-启用或关闭Windows功能&#xff0c;可能你的电…

【JavaScript高级】03-JavaScript内存管理和闭包

JavaScript内存管理和闭包JavaScript内存管理垃圾回收机制算法常见的GC算法-标记清除闭包闭包的概念理解闭包的形成过程闭包的内存泄露JavaScript内存管理 JavaScript会在定义数据时为我们分配内存&#xff1a; JS对于原始数据类型内存的分配会在执行时&#xff0c;直接在栈空…

Sentinel使用教程

文章目录一、Sentinel简介1.sentinel介绍2.sentinel应用场景3.sentinel与hystrix4.sentinel组件介绍二、Sentinel使用说明1.控制台Dashboard2.Sentinel 流量控制和熔断降级3.常见报错解决一、Sentinel简介 1.sentinel介绍 Sentinel 是由阿里巴巴中间件团队开发的开源项目&…