一、while循环1、while 循环只要条件为真我们就可以执行一组语句。2、while 循环需要预先设置索引变量,并且需要编写代码执行索引变量1。如下我们需要定义一个变量 i初始值设置为 1。i1whilei7:print(i)i13、while True:whileTrue:代码块这段代码while True:因为值固定为布尔常量true代表“真”因此会无限循环。常见用途这种无限循环通常用于那些需要持续运行、时刻待命或直到用户主动退出的程序。常见的场景包括服务器/后台守护进程例如 Web 服务器需要一直运行时刻监听是否有新的客户端请求连接。交互式命令行程序例如一个计算器程序执行完一次计算后不应直接关闭而是回到主菜单等待用户下一次输入。游戏主循环游戏程序需要不断地刷新画面、检测用户输入、更新游戏逻辑直到玩家点击“退出游戏”。实时数据监听例如监控传感器数据或消息队列MQ。使用时开发者必须在代码内部设计好“出口”break 或 return以及合理的“休息”时间time.sleep以保证程序的稳定性和可控性。示例#codingutf-8importtimefromdatetimeimportdatetime#每天发送的固定时间格式小时:分钟比如 09:00FIXED_TIME[16:00:00,17:00:00]whileTrue:nowdatetime.now().strftime(%H:%M:%S)# 对比时间到点则发送ifnowFIXED_TIME[0]andnowFIXED_TIME[1]:满足条件执行的代码time.sleep(3600)3、break 语句如果使用 break 语句即使 while 条件为真我们也可以停止循环i0whilei7:i1ifi3:breakprint(i)输出1234、continue 语句如果使用 continue 语句我们可以停止循环中的当前迭代并继续下一个迭代i0whilei7:i1ifi3:continueprint(i)输出124567二、for循环1、for 循环用于迭代序列即列表元组字典集合或字符串。通过使用 for 循环我们可以为序列即列表元组字典集合或字符串中的每个项目等执行一组语句。2、for 循环不需要预先设置索引变量索引变量自动1。如下forxinbanana:print(x)3、for循环一般和range() 函数结合使用range() 函数默认从 0 开始并递增 1默认1可以通过添加第三个参数来指定增量值非必填并以指定的数字结束。语法for i in range(start, stop, step)。参数start 为起始值包含stop 为终止值不包含step 为递增值默认为 1 也即大于等于起始值小于结束值。fornumberinrange(1,6):print(number)注意for i in range()与for i in的区别for i in后面通常跟一个可迭代对象如列表、元组、字符串、集合、字典等循环会依次遍历可迭代对象中的每个元素并将元素赋值给变量 i。例如for i in [1, 2, 3]会依次将1、2、3赋值给变量ifor i in range()这种形式使用range()函数生成一个整数序列通常用于需要指定循环次数或范围的场景。range(n)生成一个从0到n-1的整数序列range(m, n)生成一个从m到n-1的整数序列。例如for i in range(5)会生成0、1、2、3、4并依次赋值给变量i也即使用场景有差异for i in适用于需要遍历各种数据结构如列表、字典等的场景。for i in range()适用于需要指定循环次数或范围的场景常用于循环次数已知的情况。4、for嵌套循环adj[red,big,tasty]fruits[apple,banana,cherry]forxinadj:foryinfruits:print(x,y)5、pass 语句for 语句不能为空如果因为某种原因写了无内容的 for 语句可使用 pass 语句来避免错误forxin[0,1,2]:pass6、break 语句通过使用 break 语句我们可以在循环遍历所有之前停止循环fruits[apple,banana,cherry]forxinfruits:ifxbanana:breakprint(x)输出apple7、continue 语句通过使用 continue 语句我们可以停止循环的当前迭代并继续下一个fruits[apple,banana,cherry]forxinfruits:ifxbanana:continueprint(x)输出applecherry