【Python入门】Python的判断语句(判断语句的嵌套)

news2025/1/22 18:05:41

在这里插入图片描述
前言

📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函数、函数进阶、数据容器、文件操作、异常模块与包、数据可视化等,持续更新,请大家拭目以待恒川的专栏!
📘相关专栏C语言初阶、C语言进阶、恒川的日常汇报、大家有兴趣的可以看一看
📙Java等专栏正在发展,拭目以待!


有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求。
对这种需求,嵌套判断语句可以实现

Python的判断语句

  • 1. 判断语句的嵌套
  • 2. 简单嵌套
  • 3. 总结
  • 4. 实战案例

1. 判断语句的嵌套

在这里插入图片描述
许多逻辑的判断,是嵌套的,多层次的。
对于这种需求,我们可以:自由组合 if elif else,完成特定需求的要求
基础语法格式如下:
在这里插入图片描述
如上图,第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if

嵌套的关键点,在于:空格缩进
通过空格缩进,来决定语句之间的:层次关系

2. 简单嵌套

演示判断语句的嵌套使用

if int(input("你的身高是多少:")) > 120: # 1
    print("身高超出限制,不可以免费")
    print("但是,如果vip级别大于3,可以免费")

    if int(input("你的vip级别是多少:")) > 3: # 2
        print("恭喜你,vip级别达标,可以免费")
    else:
        print("Sorry 你需要买票10元")
else:
    print("欢迎小朋友,免费游玩。")

如代码所示:

  • 判断有2层
  • 当外层if满足条件(代码编号1)时,才会执行内层if判断(代码编号2)
  • 当外层if(编号1)不满足,直接执行外层esle

自由组合嵌套,需求如下:
公司要发礼物,条件是:

  1. 必须是大于等于18岁小于30岁的成年人
  2. 同时入职时间需满足大于两年,或者级别大于3才可领取
age = 20
year = 3
level = 1
if age >= 18:
    print("你是成年人")
    if age < 30:
        print("你的年龄达标了")
        if year > 2:
            print("恭喜你,年龄和入职时间都达标,可以领取礼物")
        elif level > 3:
            print("恭喜你,年龄和级别达标,可以领取礼物")
        else:
            print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")

    else:
        print("不好意思,年龄太大了")

else:
    print("不好意思,小朋友不可以领取。")

代码结果:

你是成年人
你的年龄达标了
恭喜你,年龄和入职时间都达标,可以领取礼物

age = 11
level = 1
if age >= 18:
    print("你是成年人")
    if age < 30:
        print("你的年龄达标了")
        if year > 2:
            print("恭喜你,年龄和入职时间都达标,可以领取礼物")
        elif level > 3:
            print("恭喜你,年龄和级别达标,可以领取礼物")
        else:
            print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")

    else:
        print("不好意思,年龄太大了")

else:
    print("不好意思,小朋友不可以领取。")

代码结果:

不好意思,小朋友不可以领取。

3. 总结

  1. 嵌套判断语句可以用于多条件、多层次的逻辑判断
  2. 嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
  3. 嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系

4. 实战案例

讲到这里我们的python判断语句就讲完了,让我们来个实战案例做做吧!
通过逻辑判断语句,完成猜数字的案例代码编写

案例需求:
定义一个数字(1~10,随机产生),通过3次判断来猜出来数字

案例要求:

  1. 数字随机产生,范围1-10
  2. 有3次机会猜测数字,通过3层嵌套判断实现
  3. 每次猜不中,会提示大了或小了

提示

通过如下代码,可以定义一个变量num,变量内存储随机数字。

在这里插入图片描述
演示判断语句的实战案例:终极猜数字

# 1. 构建一个随机的数字变量
import random
num = random.randint(1, 10)

guess_num = int(input("输入你要猜测的数字:"))

# 2. 通过if判断语句进行数字的猜测
if guess_num == num:
    print("恭喜,第一次就猜中了")
else:
    if guess_num > num:
        print("你猜测的数字大了")
    else:
        print("你猜测的数字小了")

    guess_num = int(input("再次输入你要猜测的数字:"))

    if guess_num == num:
        print("恭喜,第二次猜中了")
    else:
        if guess_num > num:
            print("你猜测的数字大了")
        else:
            print("你猜测的数字小了")

        guess_num = int(input("第三次输入你要猜测的数字:"))

        if guess_num == num:
            print("第三次猜中了")
        else:
            print("三次机会用完了,没有猜中。")

代码结果:

输入你要猜测的数字:5
你猜测的数字小了
再次输入你要猜测的数字:8
恭喜,第二次猜中了
再测一次代码
输入你要猜测的数字:1
你猜测的数字小了
再次输入你要猜测的数字:4
你猜测的数字大了
第三次输入你要猜测的数字:34
三次机会用完了,没有猜中。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/522136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux高级(shell)

文章目录 一、shell概述Linux 提供的 Shell 解析器有bash 和 sh 的关系Centos 默认的解析器是 bash 二、shell脚本入门脚本格式第一个shell脚本&#xff1a;helloworld.sh 三、变量系统预定义变量自定义变量特殊变量 四、删除变量五、运算符六、条件判断七、流程控制if判断case…

猜谜游戏、彩云词典爬虫、SOCKS5代理的 Go(Golang) 小实践,附带全代码解释

猜谜游戏在编程语言实践都已经和 HelloWord 程序成为必不可少的新手实践环节&#xff0c;毕竟&#xff0c;它能够让我们基本熟悉 for 循环、变量定义、打印、if else 语句等等的使用&#xff0c;当我们基本熟悉该语言基础之后&#xff0c;就要学会其优势方面的程序实践&#xf…

基本类型的比较VS引用类型的比较

基本类型的比较VS引用类型的比较 数据类型的介绍 类型的比较&#xff0c;在Java中有两种数据类型&#xff0c;一种是基本数据类型&#xff0c;一中是引用类型。 基本数据类型包含一些我们常用的数据&#xff1a; 类型类型名称byte字节型int整型char字符型double浮点型boole…

计算机视觉的深度学习 Lecture15:Object Detection 笔记 EECS 498.007/008

一些介绍&#xff1a; amodal box &#xff08;非模态box&#xff1f;&#xff09; 标记隐含的物体大小 只检测一个目标的流程 同时计算分类分数和Box坐标、使用Multitask Loss。Multitask Loss现在是一种非常常见的方法。 滑动窗口检测多个目标 开销巨大&#xff08;右下…

springboot+vue银行OA系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的银行OA系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&…

声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——Autoencoder代码实现(6)

文章目录 概述encoder的编写过程代码编写运行结果问题总结 decoder的编写过程知识补充关于逆卷积 代码编写运行结果总结 Autoencoder模型编写 compile方法 train方法 保存和加载模型模块编写实现代码——autoencoder代码实现代码——train代码实现代码——保存和加载模型的代…

【半监督学习】Match系列.3

半监督语义分割旨在利用尽可能少的有标注图像以及大量的无标注图像来学得一个较好的分割模型。其中&#xff0c;对有标注图像的学习一般类似于全监督语义分割&#xff0c;如计算预测结果与人工标注之间的交叉熵损失&#xff0c;问题的关键在于如何利用无标注图像。 本文简单介…

【Unity】读写ProjectSettings、UserSettings、Library文件夹中的文件

【Unity】读写ProjectSettings、UserSettings、Library文件夹中的文件 AssetDatabase 类提供的 LoadAssetAtPath 方法和 CreateAsset 方法只能读写Assets、Packages文件夹中的资产&#xff0c;如果想要读写其他文件夹&#xff08;ProjectSettings、UserSettings、Library等&am…

【运筹优化】元启发式算法详解:模拟退火算法(Simulated Annealing,SA)+ 案例讲解代码实战

文章目录 一、介绍二、基础知识2.1 局部搜索(或蒙特卡罗)算法2.2 Metropolis 算法2.3 模拟退火算法 三、原理3.1 Statistical Equilibrium 统计平衡3.2 Asymptotic Convergence 渐近收敛 四、实际问题4.1 Finite-Time Approximation 有限时间近似4.2 Geometric Cooling 几何冷却…

区块元素和超连结

DIV (区块元素) <div>元素&#xff08;HTML 文件区块元素&#xff09;是无标签语意的容器元素&#xff0c;虽然它不代表任何意义&#xff0c;却是使用最多的标签之一&#xff0c;主要用来把相似或者被划分为同一区块的内容包在同个div 内&#xff0c;以便后续添加css 样…

【MyBatis】一文教你学会使用MyBatis操作数据库

文章目录 1. MyBatis是什么&#xff1f;2. 为什么要学MaBatis&#xff1f;3. MyBatis环境搭建4. MyBatis的使用4.1 简单示例4.2 获取动态参数4.2.1 ${xxx}获取动态参数4.2.2 #{xxx}获取动态参数4.2.3 #{xxx}与${xxx}获取字符串类型数据4.2.4 sql注入问题4.2.5 模糊查询like4.2.…

动态规划-背包问题-背包九讲

title: 动态规划-背包问题 date: 2023-05-12 13:01:31 categories: Algorithm动态规划 tags:动态规划 01背包问题 题目 题目链接&#xff1a;https://www.acwing.com/problem/content/description/2/ 有 N N N 件物品和一个容量是 V V V 的背包。每件物品只能使用一次。 …

数据分析05——往Pandas中导入数据

1、导入Excel&#xff1a; 注意这种方法可以导入xlsx和xls两种类型的数据读入的数据会以DataFrame的格式显示举例&#xff1a;df pd.read_excel(‘./data/demo_03.xlsx’)还可以导入excel文件中具体的某一个表格&#xff1a;pd.read_excel(‘./data/demo_03.xlsx’, sheet_na…

SD-MTSP:麻雀搜索算法SSA求解单仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、单仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

postgresql源码学习(55)—— 列中的NULL值是如何存储和判断的?

问题来自 《PostgreSQL面试题集锦》学习与回答_Hehuyi_In的博客-CSDN博客 第11题 一、 NULL值存储位置 在pg元组头数据中&#xff0c;有一个t_bits数组&#xff0c;用于存储空值位图。当元组中没有null值的时候&#xff0c;t_bits可以被认为是空的&#xff0c;当元组有null值的…

javaweb学习 html+css基础1

1、学习路线 2、web网站的开发模式 课程安排 web 前端 前端学习内容 html和css的帮助网站 HTML 系列教程 (w3school.com.cn) html快速入门 使用VSCode开发工具&#xff0c;输入 &#xff01;enter&#xff0c;即可出现骨架。 ctrl/ 可以将文字转换为注释 右击一个页面…

【JavaEE】计网之IP协议+以太网+DNS

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 网络层重点协议——IP协议&#xff0c;在复杂的网络环境中确定一个合适的路径~ 本篇文章我们来讲解什么是 IP协议及以太网&#xff0c;在IP协议中&#xff0c;有 地址管理 和 路由选择 两个…

C++中基类和派生类的构造函数与析构函数的调用顺序分析

基类为B&#xff0c;派生类为C&#xff0c;直接上代码以及运行结果。 目录 思路分析 代码一 运行结果一 代码二&#xff1a;B(i)改为b(i) 运行结果二 代码三&#xff1a;加上B(i) 运行结果三 代码四&#xff1a;删掉C类定义的B对象b&#xff0c;删除b(i) 运行结果四 思路…

Linux使用全应用

一、CentOS安装Docker Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求&#xff0c;所以我们在CentOS 7安装Docker。 基础命令 搜索镜像&#xff1a;docker search mysql 下载镜像&#xff1a;docker p…

[架构之路-197]-《软考-系统分析师》- 关键技术 - 问题分析阶段重要的四个任务

目录 前言&#xff1a; 一、信息系统/软件产品的问题分析概述 二、信息系统/软件产品的问题/痛点分析四步骤 步骤1、问题领域分析&#xff1a;研究遇到问题的业务领域&#xff08;诉求&#xff09; 步骤2、 领域问题和机会分析&#xff1a;分析业务领域的问题、痛点、难点…