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

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

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

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

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

目录
打赏
0
1
1
0
30
分享
相关文章
|
2月前
|
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
286 82
Python学习的自我理解和想法(16)
这是我在B站千锋教育课程中学Python的第16天总结,主要学习了`datetime`和`time`模块的常用功能,包括创建日期、时间,获取当前时间及延迟操作等。同时简要介绍了多个方向的补充库,如网络爬虫、数据分析、机器学习等,并讲解了自定义模块的编写与调用方法。因开学时间有限,内容精简,希望对大家有所帮助!如有不足,欢迎指正。
Python学习的自我理解和想法(15)
这是作者学习Python第15天的总结,基于B站千锋教育课程内容。文章主要介绍了`OS模块`和`random模块`的常用功能。`OS模块`涵盖文件与文件夹的操作,如获取当前目录、创建/删除文件夹、重命名、判断文件是否存在等;`random模块`则包含生成随机数及从列表中随机抽取数据的功能。因开学时间有限,内容精简为每天一到两个模块的学习笔记,附带作者的理解与语法示例,欢迎指正交流。
Python学习的自我理解和想法(14)
这是学习Python第14天的总结,基于B站千锋教育课程内容。重点介绍了`math`模块的常用功能,如取绝对值、向上/向下取整、计算π值、幂运算、对数、三角函数等。这些函数广泛应用于科学计算、数据分析和工程领域。通过掌握`math`模块,可实现高效数学运算,甚至编写计算器程序。尽管开学后时间有限,但仍坚持每天学习一到两个模块,希望读者谅解内容简略之处。如有错误,欢迎指正!
Python学习的自我理解和想法(13)
这是我在学习Python第13天的总结,基于B站千锋教育课程内容。主要学习了模块的基础知识和pip工具的使用。模块是包含Python定义和语句的文件,可通过多种方式导入(如import、from...import等)。pip用于管理Python扩展包,支持安装、卸载、更新等功能。虽然开学后时间有限,但我会坚持学习并不断完善理解。如有错误,欢迎指正!
Python学习的自我理解和想法(12)
本文记录了学习Python第12天的内容,主要包括回调函数、闭包函数、函数作用域、filter方法、map方法和装饰器函数等核心概念。通过定义、语法、实例及优缺点分析,深入浅出地讲解了这些技术的应用场景与实现方式。其中,回调函数适合异步编程,闭包可访问外部变量,装饰器用于增强函数功能而不改变原代码。文章基于B站千锋教育课程整理,非原创代码,旨在分享学习心得,欢迎指正!
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
120 6
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
2月前
|
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
36 3
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等