一、为什么学习判断语句
判断在程序中广泛应用,如果没有它,这些功能都难以实现。
二、布尔类型和比较运算符
2.1 布尔类型
进行判断,只有2个结果:
是
否
Python中常用的有6种值(数据)的类型
2.2 布尔类型的定义
布尔类型的字面量:
• True 表示真(是、肯定)
• False 表示假 (否、否定)
定义变量存储布尔类型数据:变量名称 = 布尔类型字面量
布尔类型不仅可以自行定义,同时也可以通过计算的来。
也就是使用比较运算符进行比较运算得到布尔类型的结果。
2.3 比较运算符
布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。
如下代码:
三、if语句的基本格式
3.1 if判断语句
当age为18时,执行结果:
当age为10时,执行结果:
3.2 if语句的注意点
判断语句的结果,必须是布尔类型True或False
True会执行if内的代码语句
False则不会执行
归属于if判断的代码语句块,需在前方填充4个空格缩进
Python通过缩进判断代码块的归属关系。
四、if else 语句
4.1 if else 判断语句
4.2 if else语句注意点
1. else后,不需要判断条件
2. 和if的代码块一样,else的代码块同样需要4个空格作为缩进
五、if elif else语句
5.1 if elif else语句
5.2 if elif else语句 注意点
elif 语句可以写多个。
判断是互斥且有顺序的。
• 满足 1 (如图编号)将不会理会 2 和 3
• 满足 2 ,将不会理会 3
• 1 、 2 、 3 均不满足,进入 else
• else 也可以省略不写,效果等同 3 个独立的 if 判断
空格缩进同样不可省略
可以如上图,将input输入语句直接写入判断条件中。
节省代码量
六、判断语句的嵌套
有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求。
对这种需求,嵌套判断语句可以实现
6.1 判断语句的嵌套
许多逻辑的判断,是嵌套的,多层次的。
对于这种需求,我们可以:自由组合 if elif else,完成特定需求的要求
基础语法格式如下:
如上图,第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if
嵌套的关键点,在于:空格缩进
通过空格缩进,来决定语句之间的:层次关系
简单嵌套:
如图:
• 判断有 2 层
• 当外层 if 满足条件(图中编号 1 )时,才会执行内层 if 判断(图中编号 2 )
• 当外层 if (编号 1 )不满足,直接执行外层 esle
自由组合嵌套,需求如下:
公司要发礼物,条件是:
1. 必须是大于等于18岁小于30岁的成年人
2. 同时入职时间需满足大于两年,或者级别大于3才可领取
如图:
• if elif else 可以自由组合
• 满足缩进的要求即可
七、实战案例
7.1 题目要求
案例需求:
定义一个数字(1~10,随机产生),通过3次判断来猜出来数字
案例要求:
1. 数字随机产生,范围1-10
2. 有3次机会猜测数字,通过3层嵌套判断实现
3. 每次猜不中,会提示大了或小了
提示,通过如下代码,可以定义一个变量num,变量内存储随机数字。
7.2 思路:
为了完成这个案例需求,首先确实需要用到Python的random模块来创建一个1到10之间的随机整数。然后,可以通过使用三次机会(三次尝试)来猜测这个数字,如果猜不中,根据输入和随机数字的比较,提示用户是猜大了还是猜小了。
先看看如何生成一个1到10之间的随机整数:
1. import random 2. 3. # 生成1到10之间的随机数 4. num = random.randint(1, 10)
接下来,按照案例要求实现猜数字的逻辑。这里我们不使用三层嵌套判断,因为那样实现会比较复杂且不易于理解和维护。而是采用循环来实现给用户三次猜测的机会,这样代码更清晰、更简洁。
这个“猜数字”游戏的基本思路是通过生成一个用户未知的随机数字,并让用户在有限的尝试次数内猜测这个数字。我们通过简单的交互和逻辑判断来实现这个游戏,具体思路如下:
1. 生成随机数字:
首先,使用Python中的`random.randint`函数生成一个介于1到10之间的随机整数。这个数字是游戏的目标,用户需要猜测这个数字。
2. 设置猜测次数:
用户共有三次机会来猜测这个数字。这通过一个for循环实现,循环次数由`range(3)`控制,表示0到2共三次。
3. 获取用户输入并处理异常:
在每次循环中,使用`input()`函数提示用户输入他们的猜测,并尝试将这个输入转换为整数。如果输入不是一个有效的整数(例如,用户输入了文字),使用`try...except`结构捕捉`ValueError`并提示用户重新输入。
4. 判断并给出反馈:
- 对于每次用户的输入,通过一系列的if语句判断用户输入的数字与随机数字的关系:
- 如果用户猜的数字小于目标数字,提示“小了”。
- 如果用户猜的数字大于目标数字,提示“大了”。
- 如果用户猜的数字正好等于目标数字,输出“恭喜你,猜对了!”,并提前结束循环。
5. 结束游戏:
如果用户在三次机会内猜对了数字,游戏提前结束。如果三次机会都用完用户仍未猜中,循环结束后输出正确的数字并告知用户游戏结束。
整个游戏是围绕着生成随机数、用户输入、逻辑判断和用户反馈构建的,是一种简单的逻辑推理游戏。
7.3 代码:
# 首先,导入Python的random模块,这个模块提供了生成随机数的功能。 import random # 使用random.randint函数生成一个1到10之间的随机整数,并将这个数赋值给变量num。 # 这个数字是用户需要猜测的目标数字。 num = random.randint(1, 10) # 通过for循环,给用户三次猜测数字的机会。 # range(3)生成一个从0到2的序列,代表用户有三次猜测的机会。 for attempt in range(3): try: # 使用input函数提示用户输入他们的猜测,并通过int函数将输入转换为整数。 # 如果用户输入的不是整数,int函数会抛出ValueError,我们通过try...except捕获这个错误, # 提醒用户输入有效的整数。 guess = int(input("猜一个1到10之间的数字: ")) # 使用if...elif...else语句判断用户的猜测是否正确。 # 如果猜测的数字小于目标数字,打印提示"小了"。 if guess < num: print("小了") # 如果猜测的数字大于目标数字,打印提示"大了"。 elif guess > num: print("大了") # 如果猜测的数字等于目标数字,打印"恭喜你,猜对了!",并通过break语句退出循环。 else: print("恭喜你,猜对了!") break # 如果在尝试将用户输入转换为整数时发生ValueError,打印提示让用户输入一个有效的整数。 except ValueError: print("请输入一个有效的整数。") # 如果循环运行到最后一次还没有猜中(即attempt等于2,因为range(3)生成的序列是0、1、2), # 打印提示"很遗憾,三次机会已用尽。正确数字是",并显示正确的数字。 if attempt == 2: print("很遗憾,三次机会已用尽。正确数字是", num)
7.4 运行效果:
📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!
❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊
💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!
🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈