python学习笔记 —— if 语句

if 语句

课程笔记:
简单示例: 利用 if 语句判断车名是否为 ‘bmw’,如果是将其用全大写的方式打印出来,如不是则使用首字母大写的方式打印出来。
在这里插入图片描述
在这里插入图片描述
if 条件测试:
在这里插入图片描述
检测两个值是否不相等时,使用惊叹号和等号相结合(!=)
在这里插入图片描述
在这里插入图片描述
比较数字:
在这里插入图片描述
在这里插入图片描述
检查多个条件,使用 and 或者 or :
在这里插入图片描述
使用关键字 in ,检查是否包含在列表中:
在这里插入图片描述
在这里插入图片描述
使用关键字 not in ,检查是否不包含在列表中:
在这里插入图片描述
在这里插入图片描述
布尔表达式(Boolean expression): 条件测试的别名,其结果只能为 True 或者 False,布尔值通常用于记录条件:
在这里插入图片描述
在追踪程序状态或程序中重要的条件方面,布尔表达式提供了一种高效的方式。

课后小练习:
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。

  • 创建更多的测试,且其中结果分别为 True 和 False 的测试都至少有5个。
    在这里插入图片描述
    在这里插入图片描述
    5-2 更多的条件测试: 你并非只能创建10个测试。如果你想尝试做更多的比较,可以编写一个测试,并将它们加入 condition_test.py 中。对于下面列出的各种测试条件至少编写一个结果为 True 和 False 的测试。

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

  • 使用函数 lower() 的测试。

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

  • 使用关键字 and 和 or 的测试。

  • 测试指定值是否包含在列表中。

  • 测试指定值是否不包含在列表中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    课程笔记:
    最简单的 if 从句只有一个测试和一个操作:

	if condition_test:
		do something

第一行中可以包含任何条件测试,如果条件执行结果为 True,Python执行紧跟在 if 语句后面缩进的代码;如果执行条件结果为 False ,Python会忽略 if 后面缩进的代码。

假设有一个年龄变量,而你想知道这个人是否能够投票的年龄,可使用:
在这里插入图片描述
在这里插入图片描述
if 语句中,缩进的作用和 for 循环中相同,如果测试通过了,将执行 if 语句后面所有缩进的代码行,比如在上述代码中,再添加一行询问是否有登记:
在这里插入图片描述
测试条件通过了,并且两条 print 语句都有缩进,所以都执行:
在这里插入图片描述
if-else 语句: 通过时执行一个操作(if 后的语句),没有通过时执行另一个操作(else 后的语句)。

年龄为17岁,判断他是否能够投票,同时根据不同情况打印出另外一条消息:
在这里插入图片描述
在这里插入图片描述
if-elif-else 结构: 适用于超过两个判断条件的结构,它可以依次检查每个条件,直至遇到了通过了的条件测试,Python执行紧跟在其后的代码,并跳过后面的测试。

例如:
一个按年龄阶段收费的游乐场:

  • 4岁以下免费
  • 4~18岁收费5美元
  • 18岁(含)以上收费10美元

在这里插入图片描述
在这里插入图片描述
为了使代码更加简洁,可以只在结构中设置门票价格,在最后添加一条 print 语句:
在这里插入图片描述
在这里插入图片描述
这样处理后,代码更加简洁,效率也更高,而且更容易修改,要调整输出信息的时候,只需要调整最后一条即可。

多个elif代码块 :根据实际所需来确定使用 elif 代码块的数量,例如,假设前面的游乐场会给老人打折,可以再添加一个测试条件,判断是否能够符合打折条件,下面假设对于65岁及以上的老人,可以半价:
在这里插入图片描述

省略 else 代码块: if 语句后面并不一定包含else语句。
Attention : else 是一条包罗万象的语句,只要不满足前面的条件就会执行 else 后面的语句,这很有可能引入无效甚至恶意的数据。所有有时候使用 elif 去代替 else 会比较清晰。

测试多个条件:
1.运行多个代码块的时候,采用多个 if 语句:
在这里插入图片描述在这里插入图片描述
2.只想执行一个代码块的时候,采用 if-elif-else 结构
在这里插入图片描述
在这里插入图片描述
课后小练习:
5-3 外星人颜色#1: 假设在游戏中刚射杀了一个外星人,请创建一个名为 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(含)~ 18 岁,就打印一条消息,指出他是青少年。

  • 如果一个人的年龄为 18(含)~ 65岁,就打印一条消息,指出他是成年人。

  • 如果一个人的年龄超过 65(含)岁,就打印一条消息,指出他是老人。
    在这里插入图片描述
    在这里插入图片描述
    5-7 喜欢的水果: 创建一个列表,其中包含你喜欢的水果,在编写一系列独立的 if
    语句检查列表中是否包含特定的水果。

  • 将该列表命名为 favorite_fruits,并在其中包含三个水果。

  • 编写5条 if 语句,每条都检查是否包含在列表中,如果包含在列表中,就打印一条消息说明,如:“You really like bananas!”
    在这里插入图片描述
    在这里插入图片描述
    课程笔记:
    检查列表中的特殊元素:
    前一段代码是一个简单的 for 循环输出顾客在披萨中所点的配料,后一段代码加上了 if-else 结构是指出顾客所点的配料中暂时缺货的情况:
    在这里插入图片描述
    后一个代码,能够妥善的处理顾客点单:
    在这里插入图片描述
    判断列表不为空: 为了更好的运行代码,在运行 for 循环前判断列表是否为空很重要,可以使用 if 语句来做如下
    在这里插入图片描述
    在这里插入图片描述
    使用多个列表:
    顾客的要求总是五花八门的,使用列表和 if 语句来确定是否能满足顾客的要求,拒绝客户在披萨中添加奇怪的东西:
    在这里插入图片描述
    在这里插入图片描述
    如果披萨店中提供的配料是不变的,也可以使用元组来存储它们。

课后小练习:
5-8 以特殊的方式跟管理员打招呼: 创建一个至少包含 5 个用户的列表,且其中一个用户名为 ‘admin’。想象你要编写的代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条特殊的消息。

  • 如果用户名为 ‘admin’,就打印一条特殊的问候消息,如“Hello admin, would you like to see a status report?”。
  • 否则,打印一条普通的问候消息,如“Hello Erick, thank you for logging in again.”。
    在这里插入图片描述
    在这里插入图片描述
    5-9 处理没有用户的情形: 在完成练习 5-8 的编写的程序中,添加一条语句,检查用户列表是否为空。
  • 如果为空,就打印消息“We need to find some users!”。
  • 删除列表中的所有用户,确保打印正确的消息。
    在这里插入图片描述
    在这里插入图片描述
    !!5-10 检查用户名: 按以下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
  • 创建一个至少包含 5 个用户名的列表,并将其命名为 current_users。
  • 再创建一个至少包含 5 个用户的列表,并将其命名为 new_users,并确保其中有一两个用户名也包含在 current_users 列表中。
  • 遍历列表 new_users,对于其中每个用户名,都检查它是否已经被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,就打印一条消息,指出这个用户名未被使用。
  • 确保比较时不区分大小写;换句话说,如果用户名 ‘John’已被使用,应拒绝用户名’JOHN’。
    在这里插入图片描述
    在这里插入图片描述
    5-11 序数: 序数表示位置,如 1st 和 2nd。大多数序数都以 th 结尾,只有1、2 和 3 例外。
  • 在一个列表中存储数字 1~9.
  • 遍历这个列表。
  • 在循环中使用一个 if-elif-else 结构,以打印每个数字所对应的的序数。输出内容应为 1st、2nd、3rd、4th、5th、6th、7th、8th 和 9th,但每个序数都独占一行。
    在这里插入图片描述
    在这里插入图片描述
    设置 if 语句的格式: 养成一个良好的设置习惯,在比较运算符两边各添加一个空格,例如:if age < 4 :就比if age<4:要好,这样的空格不会影响Python对代码的解读,而是让代码阅读起来更容易。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值