Python循环语句全解析(附实战演练)

目录

1. for 循环

2. while循环

3. 简单语句组

4. for...else语句

5. while ...else 语句

6. range() 函数

7. break & continue语句

8. 循环中的 else 子句

9. pass语句

10. 实战练习:

结语


前面学习了Python的六大数据类型、Python条件语句,今天我们来学习Python的循环语句,今天的内容学完,其实大家就可以应对Python的基础编程了。

什么是循环语句呢?简单来说,循环语句就是让代码反复执行某个操作,直到满足某个条件为止。在Python中,最常用的循环语句就是forwhile。本文将对Python中的循环语句进行全面的解析,并附上实战演练,内容包括 for 循环、while 循环、简单语句组、for...else 语句、while ...else 语句、range() 函数、breakcontinue 语句、循环中的 else 子句和 pass 语句。每个概念都会有详细的说明和实际示例,帮助大家更好地理解和使用循环语句。

1. for 循环

for 循环最常用于遍历(迭代)序列中的元素,遍历的对象可以是列表、元组、字符串或其他可迭代对象。语法如下:

for <variable> in <sequence>:<code block>

其中:

  • <variable>:循环变量,用于存储序列中的每个元素
  • <sequence>:要遍历的序列
  • <code block>:循环体,将在每个元素上执行

下图展示了for循环的执行步骤:

(1)首先,初始化循环控制变量。
(2)接着,对循环进行判断。如果判断为真,则进入循环结构;如果判断为假,则退出循环。
(3)执行循环结构内容,并更新循环控制变量。
(4)重复步骤(2)和(3),直到循环条件不再满足为止。

示例代码:

# 遍历列表
my_list = [1, 2, 3, 4, 5]for i in my_list:print(i) 

输出:

1
2
3
4
5

2. while循环

while 循环在条件为真时重复执行代码块,直到条件变为假为止。语法如下:

while <condition>:<code block>

其中:

  • <condition>:循环条件,只要为真,循环就会继续执行
  • <code block>:循环体,将在条件为真的情况下执行

下图展示了while循环的执行步骤:

(1)初始化循环控制变量。
(2)判断循环条件,若为真,则执行循环体;否则,跳过循环体。
(3)执行循环体内容。
(4)重复步骤2和3,直到循环条件不再为真。

示例

# 打印1到5
i = 1
while i <= 5:print(i)i += 1

输出:

1
2
3
4
5

上面讲了for循环和while循环的基本用法,下面这张表格进行简单比较:

特性for循环while循环
适用场景遍历序列循环执行条件
语法for <variable> in <sequence>:while <condition>:
循环控制break, continuebreak, continue


3. 简单语句组

在 forwhile 循环中,简单语句组可以用缩进来代替循环语句,如果只有一条语句需要执行,可以将该语句放在循环头部,形成简单语句组。例如:

# 等价于 for i in range(10): print(i)
for i in range(10):print(i)# 等价于 while num < 10: num += 1
num = 0
while num < 10:num += 1print(num)

4. for...else语句

for...else 语句在 for 循环完成后执行 else 代码块,除非在循环中遇到 break 语句。

语法格式如下:

for item in iterable:# 循环主体
else:# 循环结束后执行的代码

示例代码:

# 查找列表中是否存在指定元素
fruits = ["apple", "banana", "orange"]
find_flag = False
for fruit in fruits:if fruit == "mango":find_flag = Truebreak
else:print("未找到指定元素")if find_flag:print("找到了指定元素")

5. while ...else 语句

while...else 语句在 while 循环条件为假时执行 else 代码块,除非在循环中遇到 break 语句。示例:

语法格式如下:

while <condition>:<code block>   # 循环主体
else:# 循环结束后执行的代码

示例代码:

count = 0
while count < 5:print(count, " 小于 5")count += 1
else:print(count, " 不再小于 5")

输出:

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  不再小于 5

while 循环会一直执行直到 count 的值达到 5。当 count 变成 5 时,循环条件变为假值,else 语句块被执行。

6. range() 函数

range() 函数用于生成一个指定范围的数字序列,常用于 for 循环中。语法如下:

range(start, stop, step) 
  • start:序列的起始数字,默认为0
  • stop:序列的结束数字,不包含在序列中
  • step:序列的步长,默认为1

示例代码:

# 输出1-10之间的所有奇数
for i in range(1, 10, 2):print(i) 

输出:

1
3
5
7
9

7. break & continue语句

  • break语句用于提前终止循环,跳出循环体。
  • continue语句用于跳过当前循环体,直接开始下一次循环。

示例代码:

# 循环输出1到10的数字,遇到5时跳出循环
for i in range(1, 11):print(i)if i == 5:break# 循环输出1到10的数字,只输出偶数
for i in range(1, 11):if i % 2 == 1:continueprint(i)

输出结果:

循环输出1到10的数字,遇到5时跳出循环:
1
2
3
4
5
循环输出1到10的数字,只输出偶数:
2
4
6
8
10

8. 循环中的 else 子句

else 子句还可以在循环中使用,不仅限于 while 循环,也适用于 for 循环。当循环正常执行完毕(即没有遇到 break 语句)时,else 子句中的代码将被执行。

在 while 循环中使用 else

count = 0
while count < 5:print(count, "小于 5")count += 1
else:print(count, "不再小于 5")

输出:

0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 不再小于 5

在 for 循环中使用 else:

for i in range(5):print(i)
else:print("循环正常结束,没有遇到 break") 

输出将会是:

0
1
2
3
4
循环正常结束,没有遇到 break

没有执行 else 子句的情况:

如果在循环中使用了 break 语句,那么 else 子句中的代码就不会执行:

for i in range(5):print(i)if i == 2:break
else:print("循环正常结束,没有遇到 break")

输出:

0
1
2 

9. pass语句

pass 是一个占位符语句,它不做任何事情。它的作用是在语法上需要语句的地方提供一个空语句,什么也不做。pass 语句通常在代码块中需要语句,但是你暂时不想写任何代码的时候使用。

# 这是一个无限循环,需要使用 Ctrl+C 才能终止
while True:pass# 这是一个简单的 for 循环,但循环体暂时没有内容
for i in range(10):pass

10. 实战练习:

前面我们对Python中的循环语句进行了全面的解析,现在附上实战演练,大家可以尝试着敲一下代码,跟着我一起练习。

1. 使用 while 循环实现一个简单的登录功能,要求用户输入正确的用户名和密码才能登录成功。

username = "admin"
password = "123456"while True:user_input_username = input("请输入用户名:")user_input_password = input("请输入密码:")if user_input_username == username and user_input_password == password:print("登录成功!")breakelse:print("登录失败,请重新输入!")

2. 使用 for...else 语句判断一个字符串是否包含指定的子字符串。

string = "Hello, World!"
sub_string = "World"flag = Falsefor char in string:if char == sub_string[0]:for i in range(len(sub_string)):if string[i] != sub_string[i]:breakelse:flag = Truebreakif flag:print("字符串包含指定的子字符串。")
else:print("字符串不包含指定的子字符串。")

3. 使用 while ...else 语句实现一个简单的猜数字游戏。

number = 10while True:guess = int(input("请输入一个数字:"))if guess == number:print("恭喜你猜对了!")breakelif guess > number:print("你猜的数字大了。")else:print("你猜的数字小了。")else:print("游戏结束!")

下面给大家提供一些改进方法,感兴趣的可以在评论区试试:

  1. 可以对登录功能进行改进,添加三次登录机会限制,超过三次则锁定账户。
  2. 可以对猜数字游戏进行改进,添加提示功能,如提示用户猜的数字是大了还是小了。
  3. 可以将以上代码封装成函数,以便重用。

结语

Python 循环语句学完,大家就可以应对绝大多数的Python基础编程了,也算是入门成功了。大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。

我们下一篇文章将开始Python高阶特性的讲解,继续学习、记录python的下一个知识点。

如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!

往期学习:

Python安装教程(版本3.8.10)windows10

Linux系统:安装Conda(miniconda)

Conda快速安装的解决方法(Mamba安装)

VSCode安装教程(版本:1.87.0)Windows10

Python基础语法:从入门到精通的必备指南

Python的基本数据类型

Python数据类型间的转换(隐式、显式)-CSDN博客

Python基础知识:运算符详解-CSDN博客

Python基础知识:数字类型及数学函数详解-CSDN博客

Python字符串操作及方法详解!一篇就搞定!-CSDN博客

Python列表及其操作详解,从此不再迷茫!-CSDN博客

Python元组(Tuple)深度解析!

Python字典的使用技巧(一篇详解)

Python条件控制深度解析,成为编程必备

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535196.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode101对称的二叉树

如何去检查对称&#xff1f; 思路是check(n1->left,n2->right)&&check(n1->right,n2->left) 直接手算这题&#xff0c;该懂就懂了&#xff01; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* Tre…

操作系统内功篇:硬件结构之CPU是如何运行的?

本文分5个小结&#xff0c;分别是图灵机工作方式&#xff0c;冯诺依曼结构&#xff0c;总线线路位宽和CPU位宽&#xff0c;程序执行的基本过程&#xff0c; a12的具体执行过程。 一 图灵机的工作方式 图灵机由纸带&#xff0c;读写头组成。读写头上有一些部件例:存储单元&#…

【报错 - npm包问题】 token.type.endsWith is not a function

将 babel-eslint 10.1.0版本&#xff0c;降为 8.2.2 npm install babel-eslint8.2.2 --save

Python编程从入门到实践中的一些误区

1.num 使用num时python报错&#xff0c;后来查过后才知道是因为python不支持自增或自减&#xff0c;可以用1。 2.字符串和非字符串连接 要先将非字符串转换为字符串类型之后才能连接 print&#xff08;2int&#xff08;‘2’&#xff09;&#xff09;#4 3.关键字参数必须在未…

【Paper Reading】7.DiT(VAE+ViT+DDPM) Sora的base论文

VAE DDPM 分类 内容 论文题目 Scalable Diffusion Models with Transformers 作者 William Peebles (UC Berkeley), Saining Xie (New York University) 发表年份 2023 摘要 介绍了一类新的扩散模型&#xff0c;这些模型利用Transformer架构&#xff0c;专注于图像生…

Maya自定义工具架

有时候我们需要自己定义工具架上的内容&#xff0c;比如将一个工具放到工具架上&#xff0c;或者删除一个工具 添加一个工具 例如我们想在多边形建模栏位上添加一个分离按钮&#xff0c;默认 1 先切换到想要添加的工具架栏位 2 打开菜单&#xff0c;找到我们想添加的工具 …

Jmeter - 从入门到精通 - 环境搭建(详解教程)

一、JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序&#xff0c;被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能&#xff0c;例如&#xff1a;静态文件&#xff0c;Java Servlet,CGI Scripts,Java Object,数据库和FTP服…

SM4加密是什么?SM4算法在国密HTTPS协议中的作用

SM4算法&#xff0c;全称为“国密SM4分组密码算法”&#xff0c;是国家密码管理局颁布的一种对称加密算法它是我国商用密码体系中的重要组成部分。与国际上广泛使用的AES等算法类似&#xff0c;SM4同算法样用于保护数据的机密性&#xff0c;确保信息在传输过程中不被未授权的第…

中东斋月将近,外贸业务要抓紧了!

Question.1 斋月所涉及的国家有哪些? 据统计&#xff0c;共计有48个国家会恭迎斋月的到来&#xff0c;集中分布于亚洲西部和非洲北部。其中黎巴嫩、乍得、尼日利亚、波黑和马来西亚只有约一半的人信仰伊斯兰教。 阿拉伯国家(22个) 亚洲&#xff1a;科威特、伊拉克、叙利亚、…

250+可用的 AI 资源网站

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 这里是关于AI网站的一份资源列表。欢迎访问该链…

知轮科技智慧轮胎系统升级:从 Elasticsearch 到 TDengine 3.0 的应用实践

小T导读&#xff1a;随着知轮智慧轮胎系统的不断升级迭代&#xff0c;数据规模也在不断增长&#xff0c;内外部人员对智慧系统整体业务响应速度和稳定性要求变得更高。为了满足这一需求&#xff0c;该项目团队决定应用 TDengine 替换原有的 Elasticsearch 检索分析引擎&#xf…

支付模块-基于消息队列发送支付通知消息

消息队列发送支付通知消息 需求分析 订单服务作为通用服务&#xff0c;在订单支付成功后需要将支付结果异步通知给其他对接的微服务&#xff0c;微服务收到支付结果根据订单的类型去更新自己的业务数据 技术方案 使用消息队列进行异步通知需要保证消息的可靠性即生产端将消息…