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

Python教程(15)——Python流程控制语句详解

目录

    • if语句
    • else if语句
    • for循环
      • 遍历类型
      • range关键字
    • while循环
    • break语句
    • continue语句

Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的,如果你已经学过其他的语言,那么这章节就可以直接跳过。

if语句

if语句用于根据条件执行不同的代码块。condition是一个布尔表达式,后面一定要加冒号,这是python语法规定。if语句后面的条件表达式是可以加括号的,但并不是必须的。使用括号可以使代码更加清晰易读,特别是在复杂的条件表达式中。然而,括号并不是语法要求,可以根据个人编码风格和团队约定进行选择。

if condition:# code to be executed if condition is True
else:# code to be executed if condition is False

下面的代码演示了如何使用if语句来判断一个数是否为正数:

num = int(input("请输入一个整数:"))
if num > 0:print("输入的数是正数")
else:print("输入的数不是正数")

else if语句

else if语句用于在if语句之后添加多个条件分支,使用方式和if语句是一样的。另外需要注意的是最后的else语句是直接在else后面加冒号的,应该后面已经没有判断条件了。

if condition1:# code to be executed if condition1 is True
elif condition2:# code to be executed if condition1 is False and condition2 is True
else:# code to be executed if condition1 and condition2 are False

condition1condition2是两个布尔表达式,如果它们的值为True,则执行相应的代码块;否则执行else语句中的代码块。下面的代码演示了如何使用else if语句来判断一个数是否为偶数:

num = int(input("请输入大于0的数:"))
if num > 0:print("输入的数大于0")
else if num < 0:print("输入的数小于0")
else:print("输入的数等于0")

for循环

for循环用于遍历一个序列(如列表、元组或字符串)中的元素。它的语法如下:

for element in sequence:# code to be executed for each element in sequence

其中,element是当前遍历到的序列元素的值,sequence是一个序列(如列表、元组或字符串)。循环体内的代码块可以包含任意Python语句。在每次循环迭代中,element的值都会被更新为下一个序列元素的值。

遍历类型

for循环是可以用于遍历各种序列,主要有列表、元组、字符串、字典等。

  1. 遍历列表:
fruits = ["apple", "banana", "orange"]
for fruit in fruits:print(fruit)
  1. 遍历元组:
numbers = (1, 2, 3, 4, 5)
for num in numbers:print(num)
  1. 遍历字符串:
word = "Python"
for char in word:print(char)
  1. 遍历字典的键:
ages = {"John": 25, "Alice": 28, "Bob": 30}
for name in ages:print(name)

range关键字

以上是for循环遍历列表元组相关操作,有时候我们又需要遍历序列,这时候就需要range关键字了。在 Python中,range() 是一个内置函数,用于生成一个整数序列。它可以通过指定起始值、结束值和步长来生成相应的序列。

range() 函数的语法如下:

range(stop)
range(start, stop)
range(start, stop, step)

参数说明:

  • start(可选):起始值,默认为 0。
  • stop:结束值,生成的序列不包括该值。
  • step(可选):步长,默认为 1。

range() 函数返回的是一个可迭代对象,通常与 for 循环结合使用。当只传递一个参数时,默认是作为结束值;当传递两个参数时,第一个参数作为起始值,第二个参数作为结束值;当传递三个参数时,第一个参数作为起始值,第二个参数作为结束值,第三个参数作为步长。

以下是一些使用 range() 函数的示例:

# 生成 0 至 4 的整数序列
numbers1 = range(5)
print(list(numbers1))  # [0, 1, 2, 3, 4]# 生成 1 至 10 的整数序列
numbers2 = range(1, 11)
print(list(numbers2))  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 生成 0 至 10 的偶数序列
numbers3 = range(0, 11, 2)
print(list(numbers3))  # [0, 2, 4, 6, 8, 10]for element in range(start, stop, step):# 在此处执行循环体语句

需要注意的是,range() 函数生成的是惰性序列(lazy sequence),它并不会一次性地将所有的值都存储在内存中,而是在需要的时候才生成新的值。如果想要立即获取包含所有整数的列表,可以使用 list(range(start, stop, step)) 的方式进行转换。

# 遍历 1 至 10 的整数,步长为 1
for num in range(1, 11, 1):print(num)# 遍历 0 至 10 的偶数,步长为 2
for num in range(0, 11, 2):print(num)# 遍历 10 至 1 的整数,步长为 -1
for num in range(10, 0, -1):print(num)

while循环

while循环用于重复执行一段代码,直到满足某个条件为止。它的语法如下:

while condition:# code to be executed repeatedly until condition is False

condition是一个布尔表达式,如果它的值为True,则执行循环体内的代码块;否则跳出循环。循环体内的代码块可以包含任意Python语句。

下面的代码演示了如何使用while循环来计算1到100的和:

total = 0
i = 1
while i <= 100:total += ii += 1
print("1到100的和为:", total)

注意,在while循环中,一定要确保在循环体中更新循环条件的值,以避免无限循环的情况发生。如果条件永远为真,会导致代码陷入无限循环的状态,程序无法继续向下执行。
为了避免无限循环,可以在循环体内使用适当的条件控制语句(如break)来跳出循环,或者在外部设定一个计数器,并确保在合适的时机更新计数器的值。

break语句

break 是一种控制流语句,在循环中使用它可以立即终止循环并跳出循环体,进而执行循环外的下一条语句。当 break 语句被执行时,程序将会跳出循环,继续执行循环后面的代码。它可以用于 while 循环、for 循环等循环结构。

fruits = ["apple", "banana", "cherry", "date"]for fruit in fruits:if fruit == "cherry":breakprint(fruit)print("Loop ends")

输出结果为:

apple
banana
Loop ends

在上面的示例中,当循环遍历到 "cherry" 时,满足条件 fruit == "cherry"break 被执行,立即终止了循环。因此,后续的 "date" 不会被输出。

使用 break 语句可以在满足特定条件时,提前退出循环,从而减少不必要的迭代。在某些情况下,特定条件的出现可能会导致循环无需执行其余部分,这时可以利用 break 来提前终止循环,节省计算资源。

continue语句

在Python中,continue语句用于跳过当前循环中的剩余代码,并继续执行下一次循环。当continue语句被执行时,程序将立即跳转到循环的开头,而不执行continue语句之后的代码。它通常用于条件判断内部,用来控制循环的执行流程。

for i in range(1, 11):if i % 2 == 1:continueprint(i)

上述代码将输出偶数的数字,而跳过了奇数。输出结果如下:

2
4
6
8
10

在上述示例中,循环从1到10,当遇到奇数时,continue语句将会跳过print(i)的执行,直接进入下一次循环,从而实现了只输出偶数的效果。

需要注意的是,continue语句只会跳过当前循环内部的剩余代码,不会终止整个循环。如果要彻底终止循环,可以使用break语句。

**

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

**

相关文章:

Python教程(15)——Python流程控制语句详解

目录 if语句else if语句for循环遍历类型range关键字 while循环break语句continue语句 Python流程控制是Python编程中非常重要的一部分&#xff0c;它用于控制程序的执行流程。Python提供了多种流程控制语句&#xff0c;包括if语句、while循环、for循环、break和continue语句等。…...

JavaScript基础知识16——分支语句

哈喽&#xff0c;大家好&#xff0c;我是雷工。 今天学习JavaScript基础知识的分支语句&#xff0c;以下为学习笔记。 1、程序三大流程控制语句 ○写几句就从上往下执行几句&#xff0c;这种叫做顺序结构&#xff1b; ○有时要根据条件选择执行代码&#xff0c;这种叫分支结构…...

web开发初级工程师学习笔记

web开发初级工程师学习笔记 前端开发工具实验1 VS Code 初体验介绍 前端开发工具 实验1 VS Code 初体验 介绍 VS Code 环境提供的是一个可以在浏览器中使用原生 VS Code 编辑代码的程序。在该环境中&#xff0c;你可以使用到与本地安装近乎一致的 VS Code 程序来编辑代码文件…...

Linux下Samba服务安装及启用全攻略

Linux下Samba服务安装及启用全攻略 前言一、安装SSH Server二、安装Samba Server1.安装net-tool2.建立账号的samba3.windows通过Samba与linux共享文件4.使用远程工具登录Linux 总结 前言 提示&#xff1a;本文详解了在Linux系统下如何安装和启用Samba服务&#xff0c;涵盖了从…...

【C++】引用’‘的深入解析

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

java链式编程对象序列化问题

在使用 openfeign 进行服务之间数据传输时发现了一个问题&#xff0c;数据在下游正常处理&#xff0c;响应到调用端数据也读取到了&#xff0c;但是就是 jackson 转对象序列化时出了问题&#xff0c;异常如下 Failed to complete request: feign.codec.DecodeException: Type d…...

关于Redis(Redisson)超时问题的分析

概述 生产环境中流量高峰期会出现短时间的redis异常&#xff0c;主要报错如下&#xff1a; Redis server response timeoutRedisTimeoutException: Command execution timeout for command: (PING)Command still hasn’t been written into connection! 根据redisson官方所述…...

Redis 主从复制,哨兵,集群——(2)哨兵篇

目录 1. Redis 哨兵是什么&#xff1f; 2. Redis 哨兵有什么用&#xff1f; 2.1 主动监控 2.2 消息通知 2.3 故障转移 2.4 配置中心 3. Redis 哨兵数量配备要求 4. 哨兵配置文件详解 5. quorum 投票数详解 5.1 quorum 的含义 5.2 网络抖动导致主观下线 5.3 quorum …...

C++入门笔记分享

有道云笔记...

使用conda install一直卡在solving environment的解决方法

使用国内镜像源&#xff0c;但install仍旧一直卡在solving environment&#xff0c;超过10分钟就不用等了&#xff1b; 检查C:\Users\UserName 路径下的.condarc文件 将这个defaults这一行删掉即可...

神经网络和AI的关系

神经网络&#xff08;Neural Networks&#xff09;和人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;之间存在紧密的关系&#xff0c;可以概括为以下几点&#xff1a; 神经网络是AI的子领域&#xff1a;神经网络是人工智能的一个子领域&#xff0c;它是…...

[牛客]计算机网络习题笔记_1020

1、物理层&#xff1a;以太网 调制解调器 电力线通信(PLC) SONET/SDH G.709 光导纤维 同轴电缆 双绞线等。 2、数据链路层&#xff08;网络接口层包括物理层和数据链路层&#xff09;&#xff1a;Wi-Fi(IEEE 802.11) WiMAX(IEEE 802.16) ATM DTM 令牌环 以太网 FDD…...

蓝牙音视频远程控制协议(AVRCP)介绍

零.声明 本专栏文章我们会以连载的方式持续更新&#xff0c;本专栏计划更新内容如下&#xff1a; 第一篇:蓝牙综合介绍 &#xff0c;主要介绍蓝牙的一些概念&#xff0c;产生背景&#xff0c;发展轨迹&#xff0c;市面蓝牙介绍&#xff0c;以及蓝牙开发板介绍。 第二篇:Trans…...

家庭WIFI路由器、无线网卡购买指南

一、参考资料 【Wi-Fi】802.11/802.11b/802.11g/802.11n/802.11a/802.11ac/802.11ax/802.11be 从带宽到路由&#xff0c;从有线到无线&#xff0c;从需求到选购&#xff0c;从布网到实测&#xff0c;全部说尽。基础篇&#xff08;1&#xff09; 【一文详解】802.11a/b/g/n/ac/…...

Matlab2022b软件如何切换中/英文界面?

在中文Windows操作系统中&#xff0c;MATLAB2015b之后版本安装默认为中文版&#xff0c;但有部分用户还是习惯使用英文界面下的MATLAB&#xff08;个人偏好&#xff09;&#xff0c;下面以R2022b版分享一下中/英文界面的切换方法&#xff0c;超简单。 一、中文切换为英文界面&…...

通过后端数据交互,实现【会议Oa小程序】首页数据渲染

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《微信小程序 》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;…...

I.MX6U开发板上的Qt串口编程

真正串口通讯所需的功能是比较多的&#xff0c;此处的上位机只实现发送和接收功能。因为Linux、windows和开发板上均有串口&#xff0c;所以所开发的上位机在其上都是可以运行的。 文章目录 1. 资源简介2. 应用实例2.1 项目简介&#xff1a;2.2 03_serialport.pro2.3 mainwind…...

深入理解多线程编程和 JVM 内存模型

文章目录 1. 理解进程和线程的概念进程&#xff08;Process&#xff09;线程&#xff08;Thread&#xff09; 2. 理解竞态条件和死锁竞态条件&#xff08;Race Condition&#xff09;死锁&#xff08;Deadlock&#xff09; 3. JVM 内存模型堆&#xff08;Heap&#xff09;栈&am…...

QML(25)——文本输入框组件的区别(TextField TextInput TextArea TextEdit)

目录 效果展示适用场景文本组件TextLabelText和Label的区别 单行文本输入框TextFieldTextInputTextField 和 TextInput的区别 多行文本输入框TextAreaTextArea 和 TextEdit 的区别 效果展示 适用场景 场景组件属性短文本Text长文本 末尾省略Textelide: Text.ElideRight文本设置…...

SpringBoot连接MySQL密码错误,报错:Access denied for user

记&#xff1a;一次连接MySQL报密码错误&#xff0c;Access denied for user 检查步骤&#xff1a; 核对用户和密码是否正确&#xff0c;用工具登陆试下。如果配置文件是yml格式&#xff0c;配置密码是123456这种纯数字&#xff0c;记得加上单/双引号。检查云上数据库配置&am…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...