Python程序控制结构 if语句详解
前面我们已经详细介绍了Python编程基础入门:从风格到数据类型再到表达式
在编程中,控制结构决定了代码的执行顺序。Python提供了丰富的控制结构,可以帮助程序根据不同条件做出不同的决策和操作。本文将深入介绍Python中常见的控制结构——包括if语句的单分支、双分支以及嵌套结构。

一、if单分支语法
1.1 定义
if语句是Python最简单的控制结构之一,它根据条件的真或假来决定是否执行特定代码。if语句的条件必须是布尔表达式(即结果为True或False)。
- 语法:
当if 条件表达式:语句块条件表达式为True时,语句块会被执行;否则,语句块将被跳过。
1.2 示例
-
示例1:判断一个数是否为正数
number = 10 if number > 0:print(f"{number} is positive.")在这个例子中,
if number > 0是条件表达式。当number大于0时,Python将执行print(f"{number} is positive."),否则不做任何操作。
1.3 注意事项
- 代码块的缩进非常重要,通常推荐使用4个空格进行缩进。
if语句可以单独使用,也可以作为更复杂条件判断的一部分。
二、if-else双分支结构
2.1 定义
if-else语句是一种二选一的结构,意味着当条件为真时执行一组代码,当条件为假时执行另一组代码。
-
语法:
if 条件表达式:语句块1 else:语句块2当
条件表达式为True时,执行语句块1,否则执行语句块2。
2.2 示例
-
示例2:判断一个数是正数还是负数
number = -5 if number >= 0:print(f"{number} is non-negative.") else:print(f"{number} is negative.")在这个例子中,
if number >= 0是条件表达式。当number大于等于0时,执行print(f"{number} is non-negative.");否则,执行print(f"{number} is negative.")。
2.3 实践场景
- 判断用户输入的合法性(如判断用户是否输入有效数据)。
- 处理默认情况(当某种情况未被满足时执行默认操作)。
三、if分支结构的嵌套
3.1 定义
嵌套的if结构是指在一个if或else代码块中再包含另一个if或else,从而实现更加复杂的条件判断。嵌套结构在处理多个条件时非常有用。
-
语法:
if 条件表达式1:if 条件表达式2:语句块1else:语句块2 else:语句块3当
条件表达式1为真时,继续检查条件表达式2,如果为真,执行语句块1,否则执行语句块2。如果条件表达式1为假,直接执行语句块3。
3.2 示例
-
示例3:判断一个数是正数、负数还是零
number = 0 if number >= 0:if number == 0:print("Number is zero.")else:print("Number is positive.") else:print("Number is negative.")这个示例首先判断
number是否大于等于0,如果是,再进一步判断它是否等于0,从而区分正数和零;否则,直接输出“负数”。
3.3 实践场景
- 复杂条件的逐层判断。例如,判断一个人是否符合某些标准(年纪、收入、地区等)时,就需要嵌套的条件判断。
- 在程序控制中,根据不同的条件组合执行不同的操作。
四、elif多分支结构
4.1 定义
有时我们需要根据多个条件进行判断,这时可以使用elif(即"else if"的缩写)来简化嵌套if语句。elif语句用于处理多种情况,而不是简单的二选一。
-
语法:
if 条件表达式1:语句块1 elif 条件表达式2:语句块2 else:语句块3程序会从上到下依次检查每个条件表达式,当遇到第一个为
True的条件时,执行对应的语句块,其他条件将被忽略。如果没有一个条件为True,则执行else部分。
4.2 示例
-
示例4:根据成绩打分
score = 85 if score >= 90:print("Grade: A") elif score >= 80:print("Grade: B") elif score >= 70:print("Grade: C") elif score >= 60:print("Grade: D") else:print("Grade: F")在这个示例中,根据
score的值逐层判断其所在的分数区间,并最终输出对应的等级。
4.3 实践场景
- 用于简化多重条件判断场景。例如根据用户输入的指令或菜单选项做不同的操作。
- 处理多个选项的场景,如计算机中的菜单操作、打分系统等。
五、总结
在这篇文章中,我们详细介绍了Python中的基本程序控制结构,包括if单分支、if-else双分支、嵌套结构和elif多分支结构。控制结构在编写具有逻辑性的程序时是至关重要的,它允许程序根据不同的条件执行不同的操作。
相关文章:
Python程序控制结构 if语句详解
前面我们已经详细介绍了Python编程基础入门:从风格到数据类型再到表达式 在编程中,控制结构决定了代码的执行顺序。Python提供了丰富的控制结构,可以帮助程序根据不同条件做出不同的决策和操作。本文将深入介绍Python中常见的控制结构——包…...
【ppq install】
简介 PPQ 是 Sensetime OpenPPL 团队开源的量化部署工具,经过量化的神经网络往往能够在端侧加速600%~800%,而在目前已经支持OpenPPL, TensorRT, SNPE, NXP, Metax等多个不同平台的量化模拟与网络部署。PPQ 不仅限于提供强大而先进的量化优化算法&#x…...
3DGS相关方法conda环境配置
环境:ubuntu22.04,cuda_11.7 conda create -n 3dgs python3.8 -y conda activate 3dgs python -m pip install --upgrade pip pip uninstall torch torchvision functorch tinycudann pip install torch2.1.2cu118 torchvision0.16.2cu118 torchaudio2…...
python画图|曲线动态输出
【1】引言 前序教程中的曲线动态输出,其实是把曲线按照左右移动的形式输出(波的传递形式)。 python画图|曲线动态输出基础教程_python 动态曲线-CSDN博客 但有些时候我们更期待的是曲线不移动,随着自变量的增加而输出因变量&am…...
电子商务类型
常见电子商务类型及其代表性的例子: B2B(Business to Business) 定义:B2B 模式是指企业与企业之间的商业交易。在这种模式下,企业通过电子商务平台相互提供产品或服务。 特点: 大宗交易:通常…...
vue elementui el-table实现增加行,行内编辑修改
需求: 前端进行新增表单时,同时增加表单的明细数据。明细数据部分,可进行行编辑。 效果图: <el-card><div slot"header"><span style"font-weight: bold">外来人员名单2</span><…...
1. Redis简介与安装
1.1 什么是Redis Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,支持多种数据结构,如字符串、列表、集合、有序集合和哈希。它不仅能作为一个高效的缓存工具,还能作为消息队列、分布式锁和…...
Redis的持久化存储和集群管理操作
Redis 的持久化存储和集群 一、引言 Redis 是一个开源的内存数据结构存储系统,被广泛应用于缓存、消息队列、排行榜等场景。然而,由于数据存储在内存中,一旦服务器重启或出现故障,数据就会丢失。为了解决这个问题,Re…...
Auto-encoder(自编码器)
Auto-encoder(自编码器) 1 基本概念 自编码就和之前的cycle GAN的概念很像,假設你有非常大量的圖片,在 Auto-Encoder 裡面你有兩個 Network,一個叫做 Encoder,一個叫做 Decoder,他們就是兩個 N…...
Vue+sortable+el-table表格排序使用指南
前言 这两天遇到一个需求:在点击【设置优先级】的按钮后弹出关于玩法类型的table,点击【排序】按钮可以后可以进行排序。由于组内使用的组件库是 element-ui,那我首先就想到了使用 el-table组件,但奈何其版本原因不能相应的拖拽排…...
表数据删一半,为什么表文件大小不变?
参数innodb_file_per_table 这个参数设置为ON,表示每个表数据单独存在一个文件中,这时如果执行drop命令,系统会直接删除表文件。 这个参数设置为off时,所有表的数据和索引都存在共享的.ibdata文件,即使表删掉了&…...
MoCoOp: Mixture of Prompt Learning for Vision Language Models
文章汇总 当前的问题 1)数据集风格变化。 如图1所示,对于一个数据集,单个软提示可能不足以捕获数据中呈现的各种样式。同一数据集中的不同实例可能与不同的提示符兼容。因此,更**自然的做法是使用多个提示来充分表示这些变化**。 2)过拟合…...
YOLOv8 onnx 部署
本文是在win10系统下进行yolov8目标检测推理的过程记录。 yolov8 已经集成到OpenCV,可以通过两种方式调用,一种是直接通过OpenCV 调用,另外一种是通过onnx runtime(ort)调用。 1、安装cuda 、opencv 等依赖库,具体可以参考 Win1…...
在文件里引用目录文件下的静态资源图片不显示
问题:两种图片路径的指定方式,第一种能展示图片但第二种不能 两个 示例中,图片展示的差异。 在第一个示例中,图片路径是硬编码在 标签的 src 属性中的: <img src"../../assets/img/header01.png" style…...
vue使用 jsplumb 生成流程图
1、安装jsPlumb: npm install jsplumb 2、 在使用的 .vue 文件中引入 import { jsPlumb } from "jsplumb"; 简单示例: 注意:注意看 id 为"item-3"和"item-9"那条数据的连线配置 其中有几个小图片&#x…...
攻坚金融关键业务系统,OceanBase亮相2024金融科技大会
10月15-16日,第六届中新数字金融应用博览会与2024金融科技大会(简称“金博会”)在苏州工业园区联合举办。此次大会融合了国家级重要金融科技资源——“中国金融科技大会”,围绕“赋能金融高质量发展,金融科技创新前行”…...
《纳瓦尔宝典:财富和幸福指南》读书随笔
最近在罗胖的得到听书中听到一本书,感觉很有启发,书的名字叫《纳瓦尔宝典》,从书名上看给人的感觉应该财富知识类、鸡汤爆棚哪类。纳瓦尔,这个名字之前确实没有听说过,用一句话介绍一下,一个印度裔的硅谷中…...
C++ | STL | 侯捷 | 学习笔记
C | STL | 侯捷 | 学习笔记 文章目录 C | STL | 侯捷 | 学习笔记1 STL概述1.1 头文件名称1.2 STL基础介绍1.3 typename 2 OOP vs. GP3 容器3.1 容器结构分类3.2 序列式容器3.2.1 array测试深度探索 3.2.2 vector测试深度探索 3.2.3 list测试深度探索 3.2.4 forward_list测试深度…...
C函数基础
C语言中的函数教程 在C语言中,函数是一段组织好的、可重复使用的、用于执行特定任务的代码。函数可以提高代码的模块化和可重用性。以下是关于C语言中函数的详细教程。 1. 函数的定义与声明 1.1 函数定义 函数定义包括函数头和函数体。函数头包括函数返回类型、…...
html和css实现页面
任务4 html文件 任务5 htm文件 css文件 任务6 html文件 css文件 任务7 html文件 css文件...
泛微E9流程表单转PDF/HTML实战:手把手教你集成档案系统(附完整代码)
泛微E9流程表单转PDF/HTML全流程开发指南:从原理到实战 在企业管理数字化转型的浪潮中,OA系统与档案系统的无缝对接已成为提升组织效能的刚需。作为国内主流的协同办公平台,泛微E9的流程表单承载着企业核心业务流程数据,如何将这些…...
路径规划算法技术选型与实战指南:从理论到工程落地
路径规划算法技术选型与实战指南:从理论到工程落地 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 当仓库机器人在密集货架间灵活避障,当无人…...
3个高级技巧:用ScintillaNET构建专业级文本编辑器的实战指南
3个高级技巧:用ScintillaNET构建专业级文本编辑器的实战指南 【免费下载链接】ScintillaNET A Windows Forms control, wrapper, and bindings for the Scintilla text editor. 项目地址: https://gitcode.com/gh_mirrors/sc/ScintillaNET 在当今的软件开发领…...
重构Sketch图层管理流程:RenameIt效率引擎突破设计协作瓶颈
重构Sketch图层管理流程:RenameIt效率引擎突破设计协作瓶颈 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中,…...
3分钟解决Word论文格式难题:免费获取APA第7版参考文献样式终极指南
3分钟解决Word论文格式难题:免费获取APA第7版参考文献样式终极指南 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 还在为Word中找不到APA第…...
24小时运行验证:OpenClaw+ollama-QwQ-32B自动化监控脚本稳定性测试
24小时运行验证:OpenClawollama-QwQ-32B自动化监控脚本稳定性测试 1. 项目背景与目标设定 去年冬天的一个深夜,我被手机警报惊醒——某个关键商品的价格突然跌破了我的心理预期。手忙脚乱登录电商平台时,优惠早已结束。这次经历让我意识到&…...
HP-Socket技术演讲视频描述撰写指南:关键词与吸引力
HP-Socket技术演讲视频描述撰写指南:关键词与吸引力 【免费下载链接】HP-Socket High Performance TCP/UDP/HTTP Communication Component 项目地址: https://gitcode.com/gh_mirrors/hp/HP-Socket HP-Socket是一款高性能跨平台网络通信框架,专为…...
Elasticsearch踩坑记录:scaled_float字段查询结果和你想的不一样?
Elasticsearch中的scaled_float:为什么你的查询结果总是不准确? 刚接触Elasticsearch的开发者经常会遇到一个令人困惑的现象:明明存储的是精确的浮点数,查询时却返回了意料之外的结果。这背后往往与scaled_float字段类型的特殊处理…...
NTP配置避坑指南:华三/华为/思科设备时间同步差异对比
NTP配置避坑指南:华三/华为/思科设备时间同步差异对比 在网络运维中,时间同步是确保日志分析、安全审计和故障排查准确性的基础。不同厂商的设备在NTP配置上存在细微但关键的差异,这些差异往往成为混合环境部署中的"暗坑"。本文将深…...
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Me…...
