Python 流程控制
目录
1. if 语句
1.1 条件表达式与关系运算符
1.2 if-else 条件语句
1.3 多重 if 语句
1.4 if 语句的常见问题
2. Python 的循环
2.1 while 循环
2.1.1 while 循环语句
2.1.2 Python 的注释
2.1.3 字符串的格式化输出
2.1.4 while 循环嵌套
2.2 for 循环
2.2.1 for 循环的几种方式
2.2.2 for 循环示例
2.2.3 逻辑运算符
2.2.4 for 循环嵌套
2.3 循环控制
2.3.1 break 语句
2.3.2 continue 语句
1. if 语句
if 语句用于根据条件执行不同的代码块。condition 是一个布尔表达式,后面一定要加冒号,这是 Python 语法规定。if 语句后面的条件表达式是可以加括号的,但并不是必须的。使用括号可以使代码更加清晰易读,特别是在复杂的条件表达式中。(括号并不是语法要求,可以根据个人编码风格和团队约定进行选择。)
if 语句用于判断某个条件是否成立。如果成立,则执行语句内的程序;否则跳过 if 语句, 执行后面的内容,语法格式如下
if condition:# 代码块 else:# 代码块
1.1 条件表达式与关系运算符
在 Python 里,条件表达式借助关系运算符来对两个值进行比较,其结果为布尔值(True
或者 False
)。常见的关系运算符有:
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
示例代码如下:
a = 5 b = 10 print(a == b) # False print(a != b) # True print(a > b) # False print(a < b) # True print(a >= b) # False print(a <= b) # True
1.2 if-else 条件语句
if - else
语句能够依据条件表达式的结果来执行不同的代码块。其基本语法如下:
if condition:# 如果条件为 True 执行这里的代码pass else:# 如果条件为 False 执行这里的代码pass
示例代码如下:
age = 18 if age >= 18:print("你已经成年了") else:print("你还未成年")
1.3 多重 if 语句
多重 if
语句可用于检查多个条件。其基本语法如下:
if condition1:# 如果条件 1 为 True 执行这里的代码pass elif condition2:# 如果条件 1 为 False 且条件 2 为 True 执行这里的代码pass else:# 如果所有条件都为 False 执行这里的代码pass
示例代码如下:
score = 85 if score >= 90:print("优秀") elif score >= 80:print("良好") elif score >= 60:print("及格") else:print("不及格")
1.4 if 语句的常见问题
- 缩进问题:Python 依靠缩进来划分代码块,所以
if
语句里的代码块必须保持一致的缩进。 - 条件表达式错误:要保证条件表达式的结果是布尔值。
2. Python 的循环
编写程序时经常有一些代码块需要重复运行,Python 提供了 while 和 for 语句实现循环操作。
2.1 while 循环
循环的条件表达式后面也要使用冒号,然后缩进写循环操作语句。while 语句是先判断后执行。即:先判断条件表达式是否成立,如果条件表达式的值为True,则执行循环操作语句。如果其值为 False,则跳出循环,执行 while 语句后面的语句。
2.1.1 while 循环语句
循环的条件表达式后面也要使用冒号,然后缩进写循环操作语句。while 语句是先判断后执行。即:先判断条件表达式是否成立,如果条件表达式的值为True,则执行循环操作语句。如果其值为 False,则跳出循环,执行 while 语句后面的语句。其基本语法如下:
while condition:# 只要条件为 True 就会执行这里的代码pass
示例代码如下:
i = 0 while i < 5:print(i)i += 1
2.1.2 Python 的注释
在 Python 中,注释用于对代码进行说明,不会被解释器执行。单行注释以 #
开头,多行注释可以使用三个单引号 '''
或者三个双引号 """
。
示例代码如下:
# 这是一个单行注释 ''' 这是一个多行注释 可以写很多内容 ''' """ 这也是一个多行注释 """
2.1.3 字符串的格式化输出
Python 提供了多种字符串格式化输出的方式,如 %
格式化、str.format()
方法以及 f - 字符串。
示例代码如下:
name = "Alice" age = 20# % 格式化 print("我的名字是 %s,我今年 %d 岁。" % (name, age))# str.format() 方法 print("我的名字是 {},我今年 {} 岁。".format(name, age))# f - 字符串 print(f"我的名字是 {name},我今年 {age} 岁。")
2.1.4 while 循环嵌套
while
循环可以嵌套使用,也就是在一个 while
循环内部再使用另一个 while
循环。
示例代码如下:
i = 0 while i < 3:j = 0while j < 2:print(i, j)j += 1i += 1
2.2 for 循环
for 语句是另一种用于控制循环结构的方式。Pvthon 的 while 是使用条件判断执行循环,而 for是使用遍历元素的方式进行循环。
2.2.1 for 循环的几种方式
- 遍历序列:可以遍历列表、元组、字符串等序列类型。
- 使用
range()
函数:range()
函数能生成一个整数序列。
示例代码如下:
# 遍历列表 fruits = ["apple", "banana", "cherry"] for fruit in fruits:print(fruit)# 使用 range() 函数 for i in range(5):print(i)
2.2.2 for 循环示例
以下是一个计算 1 到 10 的整数之和的示例:
sum = 0 for i in range(1, 11):sum += i print(sum)
2.2.3 逻辑运算符
逻辑运算符用于组合多个条件表达式,常见的逻辑运算符有:
and
:逻辑与,两个条件都为True
时结果才为True
。or
:逻辑或,两个条件中有一个为True
时结果就为True
。not
:逻辑非,对条件表达式取反。示例代码如下:
a = 5 b = 10 c = 15 print((a < b) and (b < c)) # True print((a < b) or (b > c)) # True print(not (a < b)) # False
2.2.4 for 循环嵌套
for
循环也可以嵌套使用。
示例代码如下:
for i in range(3):for j in range(2):print(i, j)
2.3 循环控制
2.3.1 break 语句
break
语句用于跳出当前所在的循环。
示例代码如下:
for i in range(5):if i == 3:breakprint(i)
2.3.2 continue 语句
continue
语句用于跳过当前循环的剩余代码,直接进入下一次循环。
示例代码如下:
for i in range(5):if i == 3:continueprint(i)
相关文章:
Python 流程控制
目录 1. if 语句 1.1 条件表达式与关系运算符 1.2 if-else 条件语句 1.3 多重 if 语句 1.4 if 语句的常见问题 2. Python 的循环 2.1 while 循环 2.1.1 while 循环语句 2.1.2 Python 的注释 2.1.3 字符串的格式化输出 2.1.4 while 循环嵌套 2.2 for 循环 2.2.1 for…...
若依框架深度解析:企业级快速开发平台的设计哲学与实践
一、框架定位与技术基因 若依(RuoYi)作为国产开源企业级快速开发平台,完美融合了**"高效"与"灵活"两大核心设计理念。其技术基因植根于Spring Boot生态,通过模块化架构设计,将传统Java EE开发效率…...
【每日八股】复习 MySQL Day2:索引
文章目录 昨日内容复习MySQL 事务的四大特性?并发事务会产生哪些问题?MySQL 事务的隔离级别?MVCC 实现原理?幻读如何解决?读已提交隔离级别如何实现? 复习 MySQL Day2:索引MySQL 使用 B 树作为索…...
2025深圳中兴通讯安卓开发社招面经
2月27号 中兴通讯一面 30多分钟 自我介绍 聊项目 我的优缺点,跟同事相比,有什么突出的地方 Handler机制,如何判断是哪个消息比较耗时 设计模式:模板模式 线程的状态 线程的开启方式 线程池原理 活动的启动模式 Service和Activity…...
MyBatis中的@Param注解-如何传入多个不同类型的参数
mybatis中参数识别规则 默认情况下,MyBatis 会按照参数位置自动分配名称:param1, param2, param3, ...或者 arg0, arg1。 // Mapper 接口方法 User getUserByIdAndName(Integer id, String name); 以上接口在XML中只能通过param1或者arg0这样的方式来引用,可读性差。 &l…...
【高频考点精讲】JavaScript中的访问者模式:从AST解析到数据转换的艺术
大家好呀!今天想和大家聊聊一个既实用又有点"高冷"的设计模式——访问者模式。这个模式在AST解析、Babel插件开发中无处不在,但很多同学可能一直没搞明白它到底妙在哪里。 一、生活中的访问者模式 想象一下你开了一家奶茶店,店里…...
crictl 拉取镜像报错 Unimplemented desc = unknown service runtime.v1.ImageService
具体报错内容如下 crictl pull registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9 FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code Unimplemented desc un…...
1.第一章:数据治理的历史演进
文章目录 1.1 数据管理的进化之路1.2 数据整合时代的突破与局限1.3 数据治理时代的全面展开1.4 智能数据治理的突破性进展1.5 数据分类的根本价值与方法论1.6 数据分类的新方向 第一章快速的过一下: 相关专栏:数据分类的艺术 1.1 数据管理的进化之路 数…...
ApacheJmeter使用权威指南
1. JMeter 概述 JMeter 是一款开源的性能测试工具,支持HTTP、FTP、JDBC、SOAP等协议,广泛用于负载测试、压力测试和功能测试。 核心功能: 模拟多用户并发请求生成实时测试报告支持分布式测试断言验证响应结果 2. 安装与配置 2.1 环境要求…...
Ethan独立开发产品日报 | 2025-04-22
1. Agent Simulate 用数千个数字人来测试你的人工智能应用。 Agent Simulate 让你在发布之前,能够在一个安全的环境中模拟和测试大型语言模型(LLM)代理。它帮助你调试行为、加快迭代速度,并降低生产风险,专为代理开发…...
C++二分法详解
C二分法详解 文章目录 C二分法详解一、算法简介二、算法原理三、代码实现四、复杂度分析五、常见练习题 一、算法简介 二分查找(Binary Search)是一种 高效搜索算法 ,适用于 有序序列 。通过每次将搜索范围减半,时间复杂度为O(log…...
【UML建模】数据流图 绘制
管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识点 1.1定义 数据流图或数据流程图(Data Flow Diagram,简称DFD),是需求分析阶段(结构化分析 SA)中主要表达工具 , 用于表示软件模型的一种图示方法。它以图形的方式描绘数据在系统中流动和处理…...
django软件开发招聘数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,招聘信息管理系统当然不能排除在外。软件开发招聘数据分析与可视化系统是在实际应用和软件工程的开发原理之上,运用Python语言…...
HarmonyOS-ArkUI 一镜到底之组件内隐式共享元素转场 geometryTransition
geometry transition 英译为: 几何过渡。这个动画写法挺简单的,不妨碍人家的炫酷。这种效果其实就是传说中的一镜到底!从现在开始,本文geometry transition 与一镜到底具有同样的含义,指的是同样的概念。 共享元素转场(一镜到底)指的是什么效果(图文对比) 共享元素转场着…...
Visual Studio2022 配置 SDL3及拓展库
SDL(Simple DirectMedia Layer)是一个开源的跨平台多媒体开发库,使用C语言编写,主要用于游戏、模拟器和媒体播放器等多媒体应用的开发。它提供了控制图像、声音、输入输出等功能的函数,使开发者能够用相同的代码开发跨…...
Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南
Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南 引言:实时计算的范式革命 2023年双十一期间,某头部电商平台基于Flink构建的实时风控系统成功拦截了每秒超过120万次的异常交易请求。这背后是Apache Flink作为第四代计算引擎的强…...
17.QT-Qt窗口-工具栏|状态栏|浮动窗口|设置停靠位置|设置浮动属性|设置移动属性|拉伸系数|添加控件(C++)
⼯具栏 ⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。可以有多个,也可以没有,它并不是应⽤程序中必须存在的组件。它是⼀个可移动的组件,它的元素可以是各种窗⼝组件,它的元素通常以图标按钮的⽅式存在。如下图为⼯…...
开源模型应用落地-语音合成-Spark-TTS-零样本克隆与多语言生成的突破
一、前言 在人工智能生成内容(AIGC)浪潮中,文本到语音(TTS)技术始终面临一个核心矛盾:如何在效率与自然度之间找到平衡?传统TTS系统依赖复杂的多阶段流程,从文本分析到声学建模再到音频生成,每一步都可能成为“自然感”的瓶颈。而新兴的Spark-TTS ,凭借其颠覆性的“单…...
锁存器知识点详解
一、锁存器基础概念 锁存器(Latch)是一种基础的数字电路存储元件,能够在时钟信号或使能信号的控制下,暂时保存数据状态。与触发器(Flip-Flop)不同,锁存器是电平敏感的,即在使能信…...
武装Burp Suite工具:xia SQL自动化测试_插件
武装Burp Suite工具:xia SQL自动化测试_插件 插件作者介绍:本插件仅只插入单引号,没有其他盲注啥的,且返回的结果需要人工介入去判断是否存在注入,如果需要所有注入都测试,请把burp的流量转发到xray。 目录…...
Java面试:探索Spring Boot与微服务的深度挑战
场景:互联网大厂Java求职面试 在一个阳光明媚的上午,赵大宝来到了知名互联网大厂进行Java开发岗位的面试。面试官是一位严肃且经验丰富的技术专家,准备对赵大宝进行技术上的全面考核。 第一轮提问:基础知识与Spring框架 面试官…...
【redis】主从复制
Redis的单机模式仅部署单个实例,一旦节点宕机或网络故障,所有依赖Redis的服务将不可用,这就是所谓的单点故障问题。单节点需承担全部读写请求,并发量高时可能成为性能瓶颈。单节点受限于物理内存容量,无法突破内存物理…...
Qt多线程学习初级指南
一、引言部分 1. 多线程编程的重要性 在当今计算环境中,多线程编程已成为开发高性能应用程序的关键技术。现代应用程序面临着三大挑战: GUI响应性:用户界面需要保持流畅响应,即使在进行后台计算时 多核利用率:随着多…...
《解锁vLLM:大语言模型推理的加速密码》
《解锁vLLM:大语言模型推理的加速密码》 引言:AI 时代的推理引擎之光 在当今的人工智能领域,大语言模型无疑是最为耀眼的明星。它们犹如智能世界的基石,为无数的应用和创新提供了强大的支持。从日常的智能聊天机器人,到复杂的文本生成、机器翻译任务,大语言模型都展现出…...
1.1 java开发的准备工作
准备工作 一.JDK 开始写java程序之前需要安装jdk jdk是java开发工具,包含着JRE和里面的JVM(虚拟机,可以使得不同环境下都能运行Java程序),和开发工具。 二.了解写程序的三大步骤步骤 java成功运行主要需要经过代码编写,编译&a…...
矩阵运算 第30次CCF-CSP计算机软件能力认证
n和d差距这么大 就可以想到改变矩阵运算顺序来解决这道题 假设两个矩阵,分别为a行b列与b行c列,那么一次矩阵运算复杂度是a乘以c乘以b,对于这题,如果从左往右运算复杂度将会到 1e4乘以1e4乘以20>1e9 (n1e4,d20),常识…...
【Tools】Git常见操作
Git 1 配置 包括: 用户信息、分支策略、合并策略、钩子脚本路径等。 git config -l # 等价 --local --list git config --global --list # 全局 git config --local --list # 当前仓库git config user.name git config user.emailgit config user.name "Your Name"…...
国产RK3568+FPGA以 “实时控制+高精度采集+灵活扩展” 为核心的解决方案
RK3568FPGA方案在工业领域应用的核心优势 一、实时性与低延迟控制 AMP架构与GPIO中断技术 通过非对称多处理架构(AMP)实现Linux与实时操作系统(RTOS/裸机)协同,主核负责调度,从核通过GPIO中断响应紧…...
UnoCSS原子CSS引擎-前端福音
UnoCSS是一款原子化的即时按需 CSS 引擎,其中没有核心实用程序,所有功能都是通过预设提供的。默认情况下UnoCSS应用通过预设来实现相关功能。 UnoCSS中文文档: https://www.unocss.com.cn 前有很多种原子化的框架,例如 Tailwind…...
0.(新专栏目录)数据分类的艺术:从理论到实践的全面指南
前言 话说天下大数据事,分久必合,合久必分。在这个数据爆炸的时代,我们见证了数据的分散与聚合,见证了数据从孤岛到互联的转变。 回望数据发展的历程,最初企业的数据系统往往是各自为政的,各部门、各系统…...
leetcode 二分查找应用
34. Find First and Last Position of Element in Sorted Array 代码: class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {int low lowwer_bound(nums,target);int high upper_bound(nums,target);if(low high…...
航电系统之编队运动控制技术篇
航电系统的编队运动控制技术是现代航空航天领域的关键技术之一,涉及多飞行器协同飞行中的导航、通信、控制与决策。 一、技术原理 编队运动控制技术的核心目标是通过航电系统实现多飞行器(如无人机、卫星等)在空间或时间上的协同运动。其基本…...
Elasticsearch(ES)中的脚本(Script)
文章目录 一. 脚本是什么?1. lang(脚本语言)2. source(脚本代码)3. params(参数)4. id(存储脚本的标识符)5. stored(是否为存储脚本)6. script 的…...
Collection集合,List集合,set集合,Map集合
文章目录 集合框架认识集合集合体系结构Collection的功能常用功能三种遍历方式三种遍历方式的区别 List集合List的特点、特有功能ArrayList底层原理LinkedList底层原理LinkedList的应用场list:电影信息管理模块案例 Set集合set集合使用哈希值红黑树HashSet底层原理HashSet集合元…...
Kafka 核心使用机制总结
Kafka 核心使用机制总结 Kafka 核心使用机制总结1. 分区 (Partitions) - 实现伸缩性与并行处理2. 副本 (Replicas) / 复制因子 (Replication Factor) - 实现高可用与容错3. 消费者组 (Consumer Groups) - 控制消息分发与消费进度4. 数据保留策略 (Retention Policies) - 管理存…...
【MCP】第二篇:IDE革命——用MCP构建下一代智能工具链
【MCP】第二篇:IDE革命——用MCP构建下一代智能工具链 一、引言二、IDE集成MCP2.1 VSCode2.1.1 安装VSCode2.1.2 安装Cline2.1.3 配置Cline2.1.4 环境准备2.1.5 安装MCP服务器2.1.5.1 自动安装2.1.5.2 手动安装 2.2 Trae CN2.2.1 安装Trae CN2.2.2 Cline使用2.2.3 内…...
WebSocket是h5定义的,双向通信,节省资源,更好的及时通信
浏览器和服务器之间的通信更便利,比http的轮询等效率提高很多, WebSocket并不是权限的协议,而是利用http协议来建立连接 websocket必须由浏览器发起请求,协议是一个标准的http请求,格式如下 GET ws://example.com:3…...
【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接Perl
博主介绍:✌全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…...
springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。本系统采用B/S架构,数据库是MySQL…...
Centos9安装docker
1. 卸载docker 查看是否安装了docker yum list | grep docker卸载老版本docker,拷贝自官网 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine卸载新版本…...
MySQL表的操作
MySQL表的操作 1. 创建表 在创建表前,需要先进入到某个数据库: use db_name创建表时,最好提前设计好表应该有的所有内容,否则后续添加或删除表的列可能会引发一连串的问题。 create table tb_name (field1 data_type [comment…...
Jmeter中同步定时器使用注意点
1.设置数量不可大于总线程数量,不然会一直等待 2.设置数量必须与总线程数量成整数倍数,不然还是要一直等。 3.当配置的数量小于线程数时,最好把循环打开,避免最后一次未准备好的线程数量达不到并发数。...
从零开始搭建Django博客③--前端界面实现
本文主要在Ubuntu环境上搭建,为便于研究理解,采用SSH连接在虚拟机里的ubuntu-24.04.2-desktop系统搭建,当涉及一些文件操作部分便于通过桌面化进行理解,通过Nginx代理绑定域名,对外发布。 此为从零开始搭建Django博客…...
使用Handsontable实现动态表格和下载表格
1.效果 2.实现代码 首先要加载Handsontable,在示例中我是cdn的方式引入的,vue的话需要下载插件 let hot null;var exportPlugin null;function showHandsontable(param) {const container document.getElementById("hot-container");// 如果…...
结合地理数据处理
CSV 文件不仅可以存储表格数据,还可以与地理空间数据结合,实现更强大的地理处理功能。例如,你可以将 CSV 文件中的坐标数据转换为点要素类,然后进行空间分析。 示例:将 CSV 文件中的坐标数据转换为点要素类 假设我们有…...
使用Geotools实现将Shp矢量文件加载SLD并合并图例生成-以湖南省周边城市为例
目录 前言 一、技术实现简介 1、生成成果说明 2、生成流程图说明 二、具体生成实践 1、渲染地图 2、生成图例 3、合并图像及输出 三、总结 前言 在当今数字化时代,地理信息系统(GIS)技术已成为城市管理、资源规划、环境监测等众多领域…...
openGauss数据库:起源、特性与对比分析
openGauss数据库:起源、特性与对比分析 一、起源与发展历程 1. 技术背景与开源历程 openGauss是由华为公司主导开发的开源关系型数据库管理系统,其技术根源可追溯至PostgreSQL。2019年,华为在内部整合了多个数据库产品线(如GMDB…...
相机中各个坐标系的转换关系如像素坐标系到世界坐标系以及相机标定的目的
一、背景 无论是机器人领域、SLAM还是自动驾驶领域,都会涉及相机标定,但是看了很多博客,都是各种坐标系的变换,没有从上层说明进行坐标变换的目的是什么,以及相机标定完成后,是已知像素坐标求世界坐标&…...
ubuntu24设置拼音输入法,解决chrome不能输入中文
## 推荐方案:使用 Fcitx5 Fcitx5 是当前在 Wayland 环境下兼容性最好的输入法框架。 ### 1. 安装 Fcitx5 bash sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 fcitx5-module-c…...
linux内核进程管理(1)——创建,退出
linux源码阅读——进程管理(1) 1. 进程的基本介绍1.1 linux中进程和线程的区别1.2 task_struct中的基本内容1.3 命名空间ns(namespace)命名空间结构图Linux 中的命名空间类型 1.4 进程标识符 2. 创建一个进程的流程2.1 CLONE宏2.2 创建进程系统调用1. do…...