4.1Python的流程控制语句之分支语句

news2025/6/27 12:06:06

        流程控制语句是计算机编程中用于控制程序执行流程的语句。它们允许根据条件来控制代码的执行顺序和逻辑,从而使程序能够根据不同的情况做出不同的决策。流程控制实现了更复杂和灵活的编程逻辑。

  • 顺序语句

    顺序语句是按照编写的顺序依次执行程序中的代码。代码会按照从上到下的顺序有且仅执行一次。

  • 分支语句

    根据条件的真假来选择性地执行不同的代码块。这使得程序能够根据不同的情况做出不同的响应。

  • 循环语句

    允许重复执行一段代码,以便处理大量的数据或重复的任务。循环语句可以用于多次执行相同或类似的代码块,从而实现重复操作的需求。

流程控制是编程中的基本概念之一,对于编写高效、可靠的程序至关重要。

本章内容将介绍Python的分支语句:

【1】双分支语句

        双分支语句是一种编程结构,用于根据条件的真假选择不同的执行路径。它基于条件的结果,决定程序执行的部分。在许多编程语言中,双分支语句通常使用 if-else 语句来实现

代码逻辑如下:

if 条件表达式:
  # 条件表达式为True执行的语句块
  # pass 语句可以占位
else:
  # 条件表达式为False执行的语句块

其中,条件是一个表达式或逻辑判断,它的结果可以是 True(真)或 False(假)。

当条件为真时,执行代码块A,也称为 if 代码块;当条件为假时,执行代码块B,也称为 else 代码块。

        双分支语句允许根据不同的条件结果执行不同的代码逻辑,从而实现程序的分支选择和条件判断。它是一种基本的控制流程结构,常用于处理二选一的情况。

案例一,根据年龄判断是否成年:
age = int(input("请输入您的年龄:"))

# 判断是否成年
if age >= 18:
    print("您已成年!")
else:
    print("您还未成年!")

案例二,判断一个年份是否为闰年:
year = int(input("请输入一个年份:"))

# 闰年的判断条件是能够被4整除但不能被100整除,或者能够被400整除
if (year % 4 == 0 and year % 100 != 0 ) or (year % 400 == 0):
    print(f"{year}是闰年")
else:
    print(f"{year}不是闰年")

重点:

        和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次。

        在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束

注意:Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量默认情况下,一个 Tab 键就表示 4 个空格)。

【2】单分支语句

        单分支语句只包含一个条件判断和一个对应的代码块。如果条件为真,执行代码块中的语句;如果条件为假,则直接跳过代码块

案例一,获取两个值中的较小值:
# 获取两个输入值
value1 = float(input("请输入第一个值:"))
value2 = float(input("请输入第二个值:"))

# 使用单分支语句获取较小值
if value1 > value2:
    value1, value2 = value2, value1
print("较小值:", value1)

案例二,判断成绩是否合格:
score = float(input("请输入您的成绩:"))

# 判断是否合格
if score >= 60:
    print("您的成绩合格!")

print("查询结束!")

【3】多分支语句

多分支语句(if-elif-else语句)可用于在多个条件之间进行选择。

代码逻辑如下:

if condition1:
    # 当条件1为真时执行的代码块
elif condition2:
    # 当条件2为真时执行的代码块
elif condition3:
    # 当条件3为真时执行的代码块
...
else:
    # 当所有条件都为假时执行的代码块
案例一,成绩等级
# 根据用户输入的成绩判断其等级:【0-100】
score = int(input("请输入您的成绩:"))

# 如果成绩[90,100],则输出"优秀"
if 90 < score <= 100:
    print("成绩优秀!")
# 如果成绩[80,90],则输出"良好"
elif 80 < score <= 90:
    print("成绩良好!")
# 如果成绩[60,80],则输出"及格"
elif 60 <= score <= 80:
    print("成绩及格!")
# 如果成绩小于60,则输出"不及格"
elif 0 <= score < 60:
    print("成绩不及格!")
# 如果成绩小于0或大于100,则输出"成绩有误"
else:
    print("成绩有误")

案例二,BMI测试:

# 获取用户输入的身高和体重
height = float(input("请输入您的身高(单位:米):"))
weight = float(input("请输入您的体重(单位:千克):"))

# 计算BMI
bmi = weight / (height ** 2)

# 根据BMI给出健康建议
if bmi < 18.5:
    advice = f"您的BMI为 {bmi:.3},体重过轻,建议增加营养摄入。"
elif 18.5 <= bmi < 24:
    advice = f"您的BMI为 {bmi:.3},体重正常,继续保持健康的生活方式。"
elif 24 <= bmi < 28:
    advice = f"您的BMI为 {bmi:.3},体重过重,建议适当控制饮食并增加运动。"
else:
    advice = f"您的BMI为 {bmi:.3},体重肥胖,建议减少高热量食物摄入并增加运动量。"

# 输出健康建议
print(advice)

【4】分支嵌套

分支嵌套是指在一个分支语句内部嵌套另一个分支语句

案例:

num = int(input("请输入一个数字(1-10):"))

if num >= 5:
    choice = input("请从(1-3)选择一个数字:")
    if choice == "1":
        print("《千与千寻》")
    elif choice == "2":
        print("《当幸福来敲门》")
    elif choice == "3":
        print("《无间道》")
else:
    print("《大话西游》")

print("----程序结束----")

以上为Python的分支语句的介绍。

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

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

相关文章

【测试开发学习历程】python迭代、可迭代对象、迭代器、生成器

1 迭代Iteration 迭代Iteration&#xff1a;所谓迭代就是重复运行一段代码语句块的能力&#xff0c;就好比在一个容器中进行一层一层遍历数据&#xff0c;在应用过程中for循环最为突出。迭代就是从某个容器对象中逐个地读取元素&#xff0c;直到容器中没有元素为止。迭代迭代&…

利用强化学习训练“井字棋”下棋策略的详细介绍

文章目录 1. 引言2. 基本要素2.1 棋盘状态2.2 智能体&#xff08;棋手&#xff09;2.3 用户交互接口 3. 训练过程3.1 模拟对弈过程3.2 策略的训练及检验3.3 用户实践 本篇文章的强化学习例子的完整代码来自刘建平老师的Github仓库。 1. 引言 井字棋游戏&#xff08;Tic-Tac-T…

GitLab教程(一):安装Git、配置SSH公钥

文章目录 序一、Git安装与基本配置&#xff08;Windows&#xff09;下载卸载安装基本配置 二、SSH密钥配置 序 为什么要使用代码版本管理工具&#xff1a; 最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题&#xff0c;笔者因此认为代码版本管理工具对于提高团队…

每日Bug汇总--Day03

Bug汇总—Day03 一、项目运行报错 二、项目运行Bug 1、问题描述&#xff1a;Vue前端项目运行后台管理平台订单管理页面下的三个子页面出现点击不同的路由还是会出现相同的页面&#xff0c;导致页面和数据不匹配 解决办法&#xff1a; 在监听器中添加状态来根据路由地址变化…

2024地平线古月居核心开发者招募

2024地平线&古月居核心开发者招募 机器人&#xff0c;作为一个集成了多学科技术的复杂系统&#xff0c;其开发过程充满了挑战。为了帮助开发者们更好地克服这些挑战&#xff0c;提升项目的开发效率和质量&#xff0c;我们特别推出了[2024地平线&古月居核心开发者招募]…

【Gem5】获取构建教程

gem5-tutorial-hpca-2023 1 介绍 1.1 Gem5是什么1.2 Gem5可以用来做什么1.3 获取并构建gem5 gem5-tutorial-hpca-2023 打开网址&#xff1a; github 创建教程代码空空间 “Code” -> “Codespaces” -> “Create Codespace on master” GitHub Codespaces 是一个由…

DSP笔记6-C2000的中断机制

中断Interrupt&#xff1a; 单核CPU顺序执行程序 中断源&#xff0c;引起计算机中断的时间&#xff0c;解放cpu&#xff0c;提高效率。 三个等级&#xff1a;CPU中断&#xff0c;PIE中断&#xff0c;外设中断 cpu定时器&#xff0c;EPWM&#xff0c;ADC&#xff0c;eCAP&…

git bash用法-批量修改文件名

在win系统上安装git bash可以使用命令行模式操作&#xff0c;比较方便 1.原始文件名 2.代码 for file in *3utr*; do mv "$file" "$(echo "$file" | sed s/3utr/5utr/)"; done3.修改后的文件名

PS入门|学PS一定要先知道图层这玩意儿

前言 开始学习PS的小伙伴肯定是会遇到很多问题&#xff0c;最常见的莫过于为啥我调整了某些参数之后&#xff0c;并没有任何作用。 这个就涉及到图层的问题了。 学PS一定要知道&#xff0c;图层面板怎么看。 正文开始 首先咱们讲的图层面板基本上是在PS里100%会用到的功能。…

solidworks镜像实体怎么用

在SolidWorks中&#xff0c;镜像实体功能用于复制并反转实体或特征&#xff0c;使其沿着指定的基准面对称。以下是使用SolidWorks镜像实体的基本步骤&#xff1a; 1. 打开模型&#xff1a;首先打开SolidWorks软件&#xff0c;并加载您想要镜像的三维实体模型。 2. 找到镜像命…

蓝桥2021A组C题

货物摆放 问题描述格式输入格式输出评测用例规模与约定解析参考程序难度等级 问题描述 格式输入 无 格式输出 输出答案 评测用例规模与约定 无 解析 数字给的相当大所以我们不能直接给他暴力了&#xff0c;不然等很久都跑不出来。由题目我们可以得到让nLxWxH&#xff0c;所…

[leetcode]remove-duplicates-from-sorted-list

. - 力扣&#xff08;LeetCode&#xff09; 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&…

Linux——线程同步与生产者消费者模型

目录 前言 一、线程同步 二、生产者消费者模型 三、条件变量 1.理解条件变量 2.条件变量接口 2.1 条件变量初始化与销毁 2.2 条件变量等待 2.3 条件变量唤醒等待 2.4 条件变量接口运用 2.5 条件变量进行抢票 3.条件变量的细节 四、基于BlockingQueue的生产者消费者…

SL4010 低压升压恒压芯片 2.7-24V输入 输出30V/10A 300W功率

SL4010是一款高效能、宽电压范围的低压升压恒压芯片&#xff0c;其卓越的性能和广泛的应用领域使其在市场上备受瞩目。该芯片支持2.7-24V的宽输入电压范围&#xff0c;能够提供稳定的30V/10A输出&#xff0c;最大输出功率高达300W&#xff0c;为各种电子设备提供稳定可靠的电源…

蓝桥杯物联网竞赛_STM32L071KBU6_我的全部省赛及历年模拟赛源码

我写的省赛及历年模拟赛代码 链接&#xff1a;https://pan.baidu.com/s/1A0N_VUl2YfrTX96g3E8TfQ?pwd9k6o 提取码&#xff1a;9k6o

还不会免费将PDF转为Word?赶快试试这3种工具!

PDF文档格式转换是高频且刚需的办公需求&#xff0c;虽然很简单&#xff0c;但其实绝大部分人找不到合适的工具。 将PDF免费转为Word的方法有很多&#xff0c;这里主要介绍三种工具。 第一种使用最常见的Word软件&#xff0c;第二种使用免费转换网站pdf2doc&#xff0c;第三种…

算法打卡day41|动态规划篇09| Leetcode198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

算法题 Leetcode 198.打家劫舍 题目链接:198.打家劫舍 大佬视频讲解&#xff1a;198.打家劫舍视频讲解 个人思路 偷还是偷&#xff0c;这取决于前一个和前两个房是否被偷了&#xff0c;这种存在依赖关系的题目可以用动态规划解决。 解法 动态规划 动规五部曲&#xff1a;…

李廉洋:4.9黄金屡创新高。黄金原油晚间最新分析建议。

但当下不管是战争因素所带来的避险情绪影响还是美国降息与否所带来的经济影响都无疑还是支撑着黄金继续走高&#xff0c;那么接下来&#xff0c;只要市场不出现较大的利空影响&#xff0c;黄金都不会有较大的回调力度&#xff0c;所以我们当下不管是短线还是长线仍旧以继续看多…

【LAMMPS学习】八、基础知识(1.6) LAMMPS 与其他代码耦合

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

外包干了3天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…