【Python学习篇】Python判断语句(四)

简介: 【Python学习篇】Python判断语句(四)

一、为什么学习判断语句

       判断在程序中广泛应用,如果没有它,这些功能都难以实现。

二、布尔类型和比较运算符

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 运行效果:

📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!

❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊

💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!

🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈

目录
相关文章
|
2月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
62 3
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
36 4
|
3月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
370 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
17天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
8天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
19天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
23天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
22天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
19天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
18天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。