【Python】Python系列教程-- Python3 循环语句(十七)
文章目录
- 前言
- while 循环
- 无限循环
- while 循环使用 else 语句
- 简单语句组
- for 语句
- for...else
- range() 函数
- break 和 continue 语句及循环中的 else 子句
- pass 语句
前言
往期回顾:
- Python系列教程–Python3介绍(一)
- Python系列教程–Python3 环境搭建(二)
- Python系列教程–Python3 VScode(三)
- Python系列教程–Python3 基础语法(四)
- Python系列教程–Python3 基本数据类型(五)
- Python系列教程-- Python3 数据类型转换(六)
- Python系列教程-- Python3 推导式(七)
- Python系列教程-- Python3 解释器和注解(八)
- Python系列教程-- Python3 什么是运算符(九)
- Python系列教程-- Python3 数字(Number)(十)
- Python系列教程-- Python3 字符串(十一)
- Python系列教程-- Python3 列表(十二)
- Python系列教程-- Python3 元组(十三)
- Python系列教程-- Python3 字典(十四)
- Python系列教程-- Python3 集合(十五)
- Python系列教程-- Python3 条件控制(十六)
Python 中的循环语句有 for 和 while。
Python 循环语句的控制结构图如下所示:

while 循环
Python 中 while 语句的一般形式:
while 判断条件(condition):执行语句(statements)……
执行流程图如下:

执行 Gif 演示:

同样需要注意冒号和缩进。另外,在 Python 中没有 do…while 循环。
以下实例使用了 while 来计算 1 到 100 的总和:
实例
#!/usr/bin/env python3n = 100sum = 0
counter = 1
while counter <= n:sum = sum + countercounter += 1print("1 到 %d 之和为: %d" % (n,sum))
执行结果如下:
1 到 100 之和为: 5050
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:
实例
#!/usr/bin/python3var = 1
while var == 1 : # 表达式永远为 truenum = int(input("输入一个数字 :"))print ("你输入的数字是: ", num)print ("Good bye!")
执行以上脚本,输出结果如下:
输入一个数字 :5
你输入的数字是: 5
输入一个数字 :
你可以使用 CTRL+C 来退出当前的无限循环。
无限循环在服务器上客户端的实时请求非常有用。
while 循环使用 else 语句
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
语法格式如下:
while <expr>:<statement(s)>
else:<additional_statement(s)>
expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。
循环输出数字,并判断大小:
实例
#!/usr/bin/python3count = 0
while count < 5:print (count, " 小于 5")count = count + 1
else:print (count, " 大于或等于 5")
执行以上脚本,输出结果如下:
0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5
简单语句组
类似 if 语句的语法,如果你的 while 循环体中只有一条语句,你可以将该语句与 while 写在同一行中, 如下所示:
实例
#!/usr/bin/pythonflag = 1while (flag): print ('欢迎访问我的教程!')print ("Good bye!")
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
执行以上脚本,输出结果如下:
欢迎访问我的教程!
欢迎访问我的教程!
欢迎访问我的教程!
欢迎访问我的教程!
欢迎访问我的教程!
……
for 语句
Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:<statements>
else:<statements>
流程图:

Python for 循环实例:
实例
#!/usr/bin/python3sites = ["Baidu", "Google","demo","Taobao"]
for site in sites:
print(site)
以上代码执行输出结果为:
Baidu
Google
demo
Taobao
也可用于打印字符串中的每个字符:
实例
#!/usr/bin/python3word = 'demo'for letter in word:print(letter)
以上代码执行输出结果为:
d
e
m
o
整数范围值可以配合 range() 函数使用:
实例
#!/usr/bin/python3# 1 到 5 的所有数字:
for number in range(1, 6):print(number)
以上代码执行输出结果为:
1
2
3
4
5
for…else
在 Python 中,for…else 语句用于在循环结束后执行一段代码。
语法格式如下:
for item in iterable:# 循环主体
else:# 循环结束后执行的代码
当循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。
实例
for x in range(6):print(x)
else:print("Finally finished!")
执行脚本后,输出结果为:
0
1
2
3
4
5
Finally finished!
以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体,不会执行 else 子句:
实例
#!/usr/bin/python3sites = ["Baidu", "Google","demo","Taobao"]
for site in sites:if site == "demo":print("demo教程!")breakprint("循环数据 " + site)
else:print("没有循环数据!")
print("完成循环!")
执行脚本后,在循环到 "demo"时会跳出循环体:
循环数据 Baidu
循环数据 Google
demo教程!
完成循环!
range() 函数
如果你需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:
实例
>>>for i in range(5):
... print(i)
...
0
1
2
3
4
你也可以使用 range() 指定区间的值:
实例
>>>for i in range(5,9) :print(i)5
6
7
8
>>>
也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做’步长’):
实例
>>>for i in range(0, 10, 3) :print(i)0
3
6
9
>>>
负数:
实例
>>>for i in range(-10, -100, -30) :print(i)-10
-40
-70
>>>
您可以结合 range() 和 len() 函数以遍历一个序列的索引,如下所示:
实例
>>>a = ['Google', 'Baidu', 'demo', 'Taobao', 'QQ']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Google
1 Baidu
2 demo
3 Taobao
4 QQ
>>>
还可以使用 range() 函数来创建一个列表:
实例
>>>list(range(5))
[0, 1, 2, 3, 4]
>>>
break 和 continue 语句及循环中的 else 子句
break 执行流程图:

continue 执行流程图:

while 语句代码执行过程:

for 语句代码执行过程:

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
实例
while 中使用 break:
实例
n = 5
while n > 0:n -= 1if n == 2:breakprint(n)
print('循环结束。')
输出结果为:
4
3循环结束。
while 中使用 continue:
实例
n = 5
while n > 0:n -= 1if n == 2:continueprint(n)
print('循环结束。')
输出结果为:
4
3
1
0
循环结束。
更多实例如下:
实例
#!/usr/bin/python3for letter in 'demo': # 第一个实例if letter == 'b':breakprint ('当前字母为 :', letter)var = 10 # 第二个实例
while var > 0: print ('当前变量值为 :', var)var = var -1if var == 5:breakprint ("Good bye!")
执行以上脚本输出结果为:
当前字母为 : d
当前字母为 : e
当前字母为 : m
当前字母为 : o
当前变量值为 : 10
当前变量值为 : 9
当前变量值为 : 8
当前变量值为 : 7
当前变量值为 : 6
Good bye!
以下实例循环字符串 demo,碰到字母 o 跳过输出:
实例
#!/usr/bin/python3for letter in 'demo': # 第一个实例if letter == 'o': # 字母为 o 时跳过输出continueprint ('当前字母 :', letter)var = 10 # 第二个实例
while var > 0: var = var -1if var == 5: # 变量为 5 时跳过输出continueprint ('当前变量值 :', var)
print ("Good bye!")
执行以上脚本输出结果为:
当前字母 : d
当前字母 : e
当前字母 : m
当前字母 : o
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。
如下实例用于查询质数的循环例子:
实例
#!/usr/bin/python3for n in range(2, 10):for x in range(2, n):if n % x == 0:print(n, '等于', x, '*', n//x)breakelse:# 循环中没有找到元素print(n, ' 是质数')
执行以上脚本输出结果为:
2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3
pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例
实例
>>>while True:
... pass # 等待键盘中断 (Ctrl+C)
最小的类:
实例
>>>class MyEmptyClass:
... pass
以下实例在字母为 o 时 执行 pass 语句块:
实例
#!/usr/bin/python3for letter in 'demo': if letter == 'o':passprint ('执行 pass 块')print ('当前字母 :', letter)print ("Good bye!")
执行以上脚本输出结果为:
当前字母 : d
当前字母 : e
当前字母 : m
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
Good bye!
相关文章:
【Python】Python系列教程-- Python3 循环语句(十七)
文章目录 前言while 循环无限循环while 循环使用 else 语句简单语句组for 语句for...elserange() 函数break 和 continue 语句及循环中的 else 子句pass 语句 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境…...
chatgpt赋能python:Python如何变为列表
Python如何变为列表 Python是一种高级编程语言,用于快速、轻松地编写软件。它的语法简洁、易于学习,可以用于各种领域,包括Web开发、机器学习和数据科学等。其中,列表是Python的一种基本数据类型,它用于存储一系列相关…...
高频面试八股文用法篇(二) hive中几种排序类型区别
目录 排序函数 1、order by 2、sort by 3、distribute by 4、cluster by 总结 排序类型 1、order by order by是与关系型数据库的用法是一样的。select * from emp order by empno desc; 针对全局数据进行排序,所以最终只会有1个reduce,因…...
linuxOPS基础_linux umask
1、什么是umask umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限) 例如: root用户下,touch a ,文件a的默认权限是644 普通用户下,touch b ,文件b的默认权限是664 644和…...
K8s基础核心
Kubernetes (K8s) 是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。下面是 Kubernetes 的一些核心概念: Pod(容器组):Pod 是 Kubernetes 中最小的可调度和管理的单元 ,它可以包含一个或多个相关的容器。这…...
Web开发中的图片管理:策略与实践
前言 在Web开发中,图像是无法忽视的重要组成部分。然而,随着图片数量的增加和高清图像的普及,图片管理变得越来越复杂。在这篇文章中,我们将详细探讨Web开发中的图片管理策略和实践,包括图片优化、存储、分发和加载策…...
SNK施努卡 - 机器视食品检测 食品中视觉检查的作用是什么?
随着工业4.0时代的到来,机器视觉在工业领域的应用场景越来越广泛。在食品工业领域中,机器视觉的应用大大提高了食品生产企业的生产效率,有效的保证了产品品质的水准。 在智能工厂中,机器视觉系统能够实时监控生产工况。机器视觉系…...
【七】设计模式~~~结构型模式~~~桥接模式(Java)
【学习难度:★★★☆☆,使用频率:★★★☆☆】 2.1. 模式动机 在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色&am…...
Python 教程:使用 pandas 和 glob 库合并多个 Excel 文件
引言 Microsoft Excel 是一种常见的电子表格软件,可用于在表格中存储和处理数据。在某些情况下,您可能需要将多个 Excel 文件合并成单个文件,以方便数据处理和分析。 Python 是一种非常流行的编程语言,具有广泛应用和丰富的库,用于处理数据和文本文件。在本文中,我们将使…...
16. Vue-element-template记住密码
Vue-element-template 记住密码 1. 在登录页面添加记住密码按钮 新增参数 rememberMe # resources/src/views/login/index.vueloginForm: {username: admin,password: 123456,rememberMe: false},添加复选框 # resources/src/views/login/index.vue<div style"margin-…...
Python文件打包成exe文件
文章目录 背景安装pyinstaller开始打包总结 背景 今天因为在线将pdf转为word被收费了,有点不爽,所以自己动手撸一个pdf转word的小工具,想着打包成exe给朋友使用,万一哪天会用到呢? 安装pyinstaller 打开cmd命令窗口…...
【简单实用框架】【十大排序算法直接调用】【可移植】
☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…...
微服务架构之RPC调用
在单体应用时,一次服务调用发生在同一台机器上的同一个进程内部,也就是说调用发生在本机内部,因此也被叫作本地方法调用。在进行服务化拆分之后,服务提供者和服务消费者运行在两台不同物理机上的不同进程内,它们之间的…...
One2Multi Graph Autoencoder for Multi-view Graph Clustering
One2Multi Graph Autoencoder for Multi-view Graph Clustering | Proceedings of The Web Conference 2020 (acm.org) 目录 Abstract 1 Introduction 2 Model 2.1 Overview 2.2 One2Multi Graph Convolutional Autoencoder Informative graph convolutional encoder M…...
Java编程实现输入数的阶乘(for循环):读入一个小于 10 的整数 n,输出它的阶乘 n。(for循环)
public class Main { public static void main(String[] args) { Scanner input new Scanner(System.in); //输入提示语句 System.out.print(“请输入一个小于10的数:”); //从键盘获取值 int num input.nextInt(); //定义一个总和 int sum 1; //开始判断输入数是…...
算法提高-搜索-FloodFill和最短路
FloodFill和最短路 FloodFillAcwing 1097. 池塘计数AcWing 1098. 城堡问题AcWing 1106. 山峰和山谷 最短路AcWing 1076. 迷宫问题AcWing 188. 武士风度的牛AcWing 1100. 抓住那头牛 FloodFill Acwing 1097. 池塘计数 //acwing 1097. 池塘计数 #include <iostream> #inc…...
【蓝桥杯单片机第八届国赛真题】
【蓝桥杯单片机第八届国赛真题】 文章目录 【蓝桥杯单片机第八届国赛真题】前言一、真题二、源码 前言 有幸进入国赛,为自己大学最后一个比赛画上完满的句号^^ 下面为蓝桥杯单片机第八届国赛程序部分,功能差不多都实现了,可能存在小bug&#…...
一种简单的Android骨架屏实现方案----0侵入0成本
对骨架屏的理解 什么是骨架屏 所谓骨架屏,就是在页面进行耗时加载时,先展示的等待 UI, 以告知用户程序目前正在运行,稍等即可。 等待的UI大部分是 loading 转圈的弹窗,有的是自己风格的小动画。其实大同小异。而骨架屏无非也是一…...
【Kubernetes 架构】了解 Kubernetes 网络模型
Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。 Kubernetes 网络支持容器化组件之间的通信。这种网络模型的主要优点是不需要在主机和容器之间映射端口。然而,配置 Kubernetes 网络模型并不是一件容…...
shell
一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 二、判断web服务是否运行 三、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
