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

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

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

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

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

目录
相关文章
|
19天前
|
机器学习/深度学习 前端开发 算法
学习Python需要多久?
【7月更文挑战第6天】学习Python需要多久?
23 5
|
25天前
|
机器学习/深度学习 算法 Python
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
37 0
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
|
16天前
|
供应链 数据挖掘 Python
后劲真大,我愿称之为学习python的“圣经”
很多小伙伴都在学习Python,但是爱看书的找不到适合自己的,这本书可以完美的解决你的问题,还能帮助到很多需要处理数据,做Excel自动方面的。 学习数据分析的好处众多,无论是对于个人职业发展还是企业的运营决策都具有重要意义。
|
2天前
|
机器学习/深度学习 数据采集 算法
Python编程语言进阶学习:深入探索与高级应用
【7月更文挑战第23天】Python的进阶学习是一个不断探索和实践的过程。通过深入学习高级数据结构、面向对象编程、并发编程、性能优化以及在实际项目中的应用,你将能够更加熟练地运用Python解决复杂问题,并在编程道路上走得更远。记住,理论知识只是基础,真正的成长来自于不断的实践和反思。
|
6天前
|
JSON 中间件 数据处理
实践出真知:通过项目学习Python Web框架的路由与中间件设计
【7月更文挑战第19天】探索Python Web开发,掌握Flask或Django的关键在于理解路由和中间件。路由连接URL与功能,如Flask中@app.route()定义请求响应路径。中间件在请求处理前后执行,提供扩展功能,如日志、认证。通过实践项目,不仅学习理论,还能提升构建高效Web应用的能力。示例代码展示路由定义及模拟中间件行为,强调动手实践的重要性。
|
14天前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
|
21天前
|
数据采集 SQL 关系型数据库
Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫
Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫
70 14
|
14天前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
|
19天前
|
索引 Python
十分钟学习Python异常处理
在编程过程中,错误和异常是不可避免的。Python提供了强大的异常处理机制,帮助我们捕获和处理运行时错误,使程序更加健壮和可靠。本文将带你在十分钟内快速掌握Python的异常处理基础知识。
|
20天前
|
机器学习/深度学习 算法 数据挖掘
Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。
【7月更文挑战第5天】**Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。 - Python因丰富库(如TensorFlow, PyTorch, Keras, Pandas, NumPy)和生态而受青睐。 - 使用OpenAI Gym构建环境,如`gym.make(&#39;CartPole-v0&#39;)`。 - 选择模型,例如神经网络,定义策略如Q-Learning。 - 训练模型,调整智能体行为,如Q-Learning更新Q表。 - 最后评估模型性能,实现数据驱动决策。
26 3