Python条件语句深度解析:从基础到应用的全面指南
🎬 江城开朗的豌豆:个人主页
🔥 个人专栏 :《 VUE 》 《 javaScript 》
📝 个人网站 :《 江城开朗的豌豆🫛 》
⛺️ 生活的理想,就是为了理想的生活 !
目录
📘 一、引言
📝 二、Python条件语句基础
📝 三、逻辑运算符在条件语句中的应用
📟 1. 逻辑运算符的概述
📟 2. 逻辑运算符在条件表达式中的使用
📟 3. 逻辑运算符的优先级和结合性
📝 四、嵌套条件语句
📝 五、条件语句的进阶用法
📟 1. 使用条件语句处理列表
📟 2. 使用条件语句处理字典
📟 3. 在循环中使用条件语句
📟 4. 与函数和模块结合使用的条件语句
📘 六、写到最后
📘 一、引言
在Python编程中,条件语句是一种控制流语句,它允许程序根据特定的条件或表达式的结果(True或False)来决定执行哪一部分代码。条件语句在编程中扮演着至关重要的角色,它使得程序能够根据不同的情况做出不同的响应,从而实现了程序的灵活性和可定制性。
Python中的条件语句主要通过
if
、elif
和else
关键字来实现。这些关键字用于构建条件判断结构,根据条件表达式的值来执行相应的代码块
📝 二、Python条件语句基础
if
语句的语法和用法
在Python中,
if
语句用于基于某个条件来执行特定的代码块。如果条件为真(True),则执行if
语句下的代码块;如果条件为假(False),则跳过该代码块,继续执行后面的代码(如果有的话)。
基本语法:
if 条件表达式: # 当条件表达式为True时执行的代码块
这里,“条件表达式”是一个返回布尔值(True或False)的表达式。当Python解释器遇到
if
语句时,它会计算条件表达式的值。如果值为True,它将执行紧随其后的缩进代码块。如果值为False,它将跳过该代码块。
示例:
x = 10 if x > 5: print("x大于5")
在这个例子中,变量
x
被赋值为10。然后,if
语句检查x > 5
这个条件是否为真。因为10确实大于5,所以条件为真,因此会执行print("x大于5")
这行代码,输出“x大于5”。
if-else语句
如果你希望在条件为假时执行另一个代码块,你可以使用
else
子句。
基本语法:
if 条件表达式: # 当条件表达式为True时执行的代码块
else: # 当条件表达式为False时执行的代码块
示例:
x = 3 if x > 5: print("x大于5")
else: print("x不大于5")
在这个例子中,因为
x
的值是3,不大于5,所以if
语句的条件为假。因此,它会跳过if
下的代码块,并执行else
下的代码块,输出“x不大于5”。
📝 三、逻辑运算符在条件语句中的应用
逻辑运算符在Python编程中起着至关重要的作用,它们允许我们组合多个条件表达式,以创建更复杂的逻辑判断。Python提供了三种基本的逻辑运算符:
and
、or
和not
。
📟 1. 逻辑运算符的概述
and
:当且仅当两个条件都为True时,整个表达式的结果才为True。or
:只要有一个条件为True,整个表达式的结果就为True。not
:对单个条件取反,如果条件为True,则not
后的结果为False;反之亦然。
📟 2. 逻辑运算符在条件表达式中的使用
逻辑运算符常用于条件表达式中,以构建复合条件。这些复合条件可以使我们的程序根据多个条件的状态来做出决策。
x = 5
y = 10 # 使用and运算符
if x > 0 and y > 0: print("x和y都是正数") # 使用or运算符
if x == 5 or y == 5: print("x或y等于5") # 使用not运算符
if not x > y: print("x不大于y")
在上面的例子中,我们使用了
and
来检查x
和y
是否都为正数;使用了or
来检查x
或y
是否等于5;使用了not
来检查x
是否不大于y
。
📟 3. 逻辑运算符的优先级和结合性
逻辑运算符具有不同的优先级,它们按照以下顺序从高到低排列:
not
、and
、or
。这意味着not
运算符会首先被评估,然后是and
,最后是or
。如果表达式中包含相同优先级的运算符,那么它们会按照从左到右的顺序进行评估,这被称为运算符的结合性。
# 优先级和结合性示例
result = not False and True or False
# 等价于 (not False) and (True or False)
# 即 True and True
# 结果为 True
在上面的例子中,
not False
首先被评估为True,然后True与True进行and
运算,最后的结果再与False进行or
运算。由于and
和or
具有不同的优先级,并且都是左结合的,因此表达式按照预期的顺序进行评估。
📝 四、嵌套条件语句
嵌套条件语句的概念和必要性。
嵌套条件语句是指在一个条件语句(
if
、elif
、else
)的内部再嵌套另一个或多个条件语句。这种结构允许我们在满足某个条件的情况下,再根据其他条件做出进一步的判断,从而实现更复杂的逻辑控制。嵌套条件语句的必要性主要体现在处理复杂逻辑时。当需要根据多个条件的不同组合来执行不同的操作时,嵌套条件语句能够非常有效地帮助我们实现这一目标。通过嵌套条件语句,我们可以构建出更加精细和灵活的逻辑控制结构,以满足不同场景下的需求
嵌套条件语句的语法和示例
x = 10
y = 5 if x > 5: print("x大于5") if y > 3: print("同时y也大于3") else: print("但y不大于3")
else: print("x不大于5")
📝 五、条件语句的进阶用法
在Python编程中,条件语句(如
if
,elif
,else
)是非常基础且重要的控制结构。除了基本的使用方式,条件语句还可以与列表、字典、循环、函数和模块等高级Python特性结合使用,实现更复杂的逻辑和操作。
📟 1. 使用条件语句处理列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers) # 输出: [2, 4, 6, 8, 10]
📟 2. 使用条件语句处理字典
my_dict = {'a': 1, 'b': 6, 'c': 3, 'd': 8, 'e': 2}
for key, value in my_dict.items(): if value > 5: print(f"{key}: {value}")
# 输出:
# b: 6
# d: 8
📟 3. 在循环中使用条件语句
for i in range(10): if i == 5: break print(i)
# 输出: 0 1 2 3 4
📟 4. 与函数和模块结合使用的条件语句
def function_a(): return "Function A called" def function_b(): return "Function B called" def main(choice): if choice == 'a': return function_a() elif choice == 'b': return function_b() else: return "Invalid choice" print(main('a')) # 输出: Function A called
print(main('b')) # 输出: Function B called
print(main('c')) # 输出: Invalid choice
📘 六、写到最后
请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.
✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式
✅ 认为我部分代码过于老旧,可以提供新的API或最新语法
✅ 对于文章中部分内容不理解
✅ 解答我文章中一些疑问
✅ 认为某些交互,功能需要优化,发现BUG
✅ 想要添加新功能,对于整体的设计,外观有更好的建议
最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!
相关文章:

Python条件语句深度解析:从基础到应用的全面指南
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 一、引言 📝 二、…...

【leetcode热题】 地下城游戏
恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0…...

Centos7安装ffmpeg
Centos7安装ffmpeg 用到的包压缩并安装 用到的包 压缩并安装 tar xvJf ffmpeg-5.0.1.tar.xz yum install -y gcctar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install yasm --versionyum install -y bzip2tar jxvf nasm-2.14.02.tar.bz2 cd n…...
安卓面试题多线程 81-85
81. 共享变量在多线程下如何保证线程安全?因为多线程是交替执⾏,每个线程操作共享变量时可能会导致数据不⼀致,要确保线程 安全,需要在访问共享变量时添加同步机制。当然,如果这个变量本⾝是线程安全的,⽐如AtomicLong,那么多线程访问也是安全 的🚀🚀🚀🚀🚀�…...
Java基础知识总结(8)
StringBuilder类(是线程不安全的) StringBuffer 和 StringBuilder二者及其相似,下面是构造方法: StringBuilder StringBuilder()创建空对象,空的字符序列 StringBuilder StringBuilder(StringBuilder builder)传入对象创造字符序列 Strin…...
C++基础入门(命名空间,函数,引用)
文章目录 前言1,命名空间2,函数函数重载缺省参数内联函数 3,引用尾声 前言 欢迎来到这篇关于C的入门博客!C是一门强大而又广泛应用的编程语言,作为一门面向对象的编程语言,C可以让你更好地组织和管理代码,提高代码的重用性和可维…...

【译】矢量数据库 101 - 什么是矢量数据库?
原文地址:Vector Database 101 - What is a Vector Database? 1. 简介 大家好——欢迎回到 Milvus 教程。在上一教程中,我们快速浏览了每天产生的日益增长的数据量。然后,我们介绍了如何将这些数据分成结构化/半结构化数据和非结构化数据&…...
Python Web开发记录 Day12:Django part6 用户登录
名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置4、登录验证5、注销登录6、图片验证码①Pillow库②图片验证码的…...

SpringTask实现的任务调度与XXL-job实现的分布式任务调度【XXL-Job工作原理】
目录 任务调度 分布式任务调度 分布式任务调度存在的问题以及解决方案 使用SpringTask实现单体服务的任务调度 XXL-job分布式任务调度系统工作原理 XXL-job系统组成 XXL-job工作原理 使用XXL-job实现分布式任务调度 配置调度中心XXL-job 登录调度中心创建执行器和任务 …...

【java】图书管理系统
有了前几篇文章关于封装、继承、多态、接口等的介绍,想必各位读者对java面向对象的思想有了一定的认识。接下来这篇文章就让我们趁热打铁,利用所学知识做一个小项目图书管理系统吧 目录 一、图书类 1、book类 2、bookList类 二、功能实现 1、IOpera…...
C#实现约瑟夫环算法
目录 1.约瑟夫环定义 2.约瑟夫环算法实现需要注意的地方 3.通过一个例子来演示这个过程 4.三人的约瑟夫环示例 4.十二人的约瑟夫环示例 1.约瑟夫环定义 约瑟夫环即设有n个人坐成一个圈,从某个人开始报数,数到m的人出列,接着从出列的下一…...

游戏服务端配置“热更”及“秒启动”终极方案(golang/ygluu/卢益贵)
游戏服务端配置“热更”及“秒启动”终极方案 ygluu 卢益贵 关键词:游戏微服务架构、游戏服务端热更、模块化解耦、golang 目录 一、前言 二、异步线程加载/重载方案 三、配置表碎片化方案 四、指针间接引用 五、重载通知 六、示例代码 七、相关连接 一、…...
鸿蒙开发的入门
鸿蒙开发的入门 注册并实名认证华为开发者账户 华为官网 注册 有账户可以直接登录 并进行实名认证 下载并安装开发工具 鸿蒙开发使用的语言 java js c/c 仓颉 手机app java 硬件 c/c 应用开发工具的下载地址 Windows(64-bit) 下载地址 程序的运行过程 解析config.j…...
为什么要减少Http的请求以及如何减少Http请求
为什么要减少Http的请求 减少 HTTP 请求的数量是优化网页性能的一个重要策略,原因有以下几点: 1.延迟:每个 HTTP 请求都会有一定的网络延迟。即使数据量很小,请求和响应的往返时间也可能相当长,特别是在网络条件不好…...
Linux性能测试工具整理
性能测试工具:Unixbench lmbench stream iozone fio netperf spec2000 spec2006 一、unixbench unixbench主要是用于系统基础性能测试,unixbench也包含一些非常简单的2D和3D图形测试 UnixBench一个基于系统的基准测试工具,不单纯是CPU 内存 …...
前端路由history路由和hash路由的区别?原理?
前端路由是指在单页应用程序(SPA)中通过改变 URL 路径来实现页面切换和导航的机制。在前端开发中,有两种主要的前端路由实现方式:基于 History API 的路由(history-based routing)和基于哈希(Ha…...

AcWing 727. 菱形——像拼图一样做题
题目描述] 分析: 利用程序根据输入的整数,画出由字符*构成的该整数阶的实心菱形。给出一个示例: n 7 n7 n7。 * * * * * * * * * * * * * * * * * * * * * * * * * 我们将采取拆解问题,通过四个部分的…...
深入理解生成型大型语言模型:自监督预训练、细调与对齐过程及其应用
分析概述 本文主要介绍了生成型大型语言模型(LLM)的预训练过程,特别是通过下一个令牌(token)预测的自监督学习方法,以及后续的细调(finetuning)和对齐(alignment&#x…...

个人简历主页搭建系列-03:Hexo+Github Pages 介绍,框架配置
今天的更新内容主要是了解为什么选择这个网站搭建方案,以及一些前置软件的安装。 Why Hexo? 首先我们了解一下几种简单的网站框架搭建方案,看看对于搭建简历网站的需求哪个更合适。 在 BuiltWith(网站技术分析工具)上我们可以…...

【堆、位运算、数学】算法例题
目录 十九、堆 121. 数组中的第K个最大元素 ② 122. IPO ③ 123. 查找和最小的K对数字 ② 124. 数据流的中位数 ③ 二十、位运算 125. 二进制求和 ① 126. 颠倒二进制位 ① 127. 位1的个数 ① 128. 只出现一次的数字 ① 129. 只出现一次的数字 II ② 130. 数字范围…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...