当前位置: 首页 > news >正文

Python条件语句深度解析:从基础到应用的全面指南

 

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

 📝 个人网站 :《 江城开朗的豌豆🫛 》 

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

📘 一、引言

📝 二、Python条件语句基础

📝 三、逻辑运算符在条件语句中的应用

📟 1. 逻辑运算符的概述 

📟 2. 逻辑运算符在条件表达式中的使用 

📟 3. 逻辑运算符的优先级和结合性 

📝 四、嵌套条件语句

📝 五、条件语句的进阶用法

 📟 1. 使用条件语句处理列表

📟 2. 使用条件语句处理字典

📟 3. 在循环中使用条件语句

📟 4. 与函数和模块结合使用的条件语句 

📘 六、写到最后


📘 一、引言

        在Python编程中,条件语句是一种控制流语句,它允许程序根据特定的条件或表达式的结果(True或False)来决定执行哪一部分代码。条件语句在编程中扮演着至关重要的角色,它使得程序能够根据不同的情况做出不同的响应,从而实现了程序的灵活性和可定制性。

        Python中的条件语句主要通过ifelifelse关键字来实现。这些关键字用于构建条件判断结构,根据条件表达式的值来执行相应的代码块

📝 二、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提供了三种基本的逻辑运算符:andornot

📟 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来检查xy是否都为正数;使用了or来检查xy是否等于5;使用了not来检查x是否不大于y。 

📟 3. 逻辑运算符的优先级和结合性 

         逻辑运算符具有不同的优先级,它们按照以下顺序从高到低排列:notandor。这意味着not运算符会首先被评估,然后是and,最后是or。如果表达式中包含相同优先级的运算符,那么它们会按照从左到右的顺序进行评估,这被称为运算符的结合性。

# 优先级和结合性示例  
result = not False and True or False  
# 等价于 (not False) and (True or False)  
# 即 True and True  
# 结果为 True

        在上面的例子中,not False首先被评估为True,然后TrueTrue进行and运算,最后的结果再与False进行or运算。由于andor具有不同的优先级,并且都是左结合的,因此表达式按照预期的顺序进行评估。

📝 四、嵌套条件语句

 嵌套条件语句的概念和必要性。

     嵌套条件语句是指在一个条件语句(ifelifelse)的内部再嵌套另一个或多个条件语句。这种结构允许我们在满足某个条件的情况下,再根据其他条件做出进一步的判断,从而实现更复杂的逻辑控制。

        嵌套条件语句的必要性主要体现在处理复杂逻辑时。当需要根据多个条件的不同组合来执行不同的操作时,嵌套条件语句能够非常有效地帮助我们实现这一目标。通过嵌套条件语句,我们可以构建出更加精细和灵活的逻辑控制结构,以满足不同场景下的需求

 嵌套条件语句的语法和示例 

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编程中,条件语句(如ifelifelse)是非常基础且重要的控制结构。除了基本的使用方式,条件语句还可以与列表、字典、循环、函数和模块等高级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. 数字范围…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...