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

(五)Python控制结构(循环结构)

 接上一篇Python控制结构(条件结构)点击蓝色字跳转查看。

2.循环结构

当你要循环的做一件事情,可以一次又一次的去写这段代码,但是不是太繁琐了。这个时候我们就考虑用循环结构来写。python的循环有for循环和while循环两种。如果确定循环次数,建议用for循环(while也可以),不确定的话建议用while。

  • 在做一个任务的时候,我们要敏锐的察觉到哪些地方是需要循环的。
  • 确定循环之后,我们首先选一下for还是while更合适,
  • 其次要确定我们到底要循环什么内容,循环的过程中需要更新什么内容、变量,循环前是否需要准备好待用的一些变量并初始化。
  • 最后也是最重要的,循环什么时候结束,你应该不希望你的程序陷入无限循环吧

2.1for循环

语法如下:‌可迭代对象(Iterable)‌是指能够被遍历(即逐个访问元素)的对象,在Python中包括列表、字符串、字典等类型。临时变量代指每次循环遍历的元素(数据)

for 临时变量 in 可迭代对象:代码段

我想循环打印0,1,2,3,4

# 使用range函数
print("0到4的数字:")
for i in range(5):print(i, end=",")  #i第一次循环就是0,第二次循环就是1
#这里print语句里面多了一个end的值,这个表示每次输出完i之后打一个逗号,如果不指定end的值,默认是换行

这里使用了一个新函数,range()函数,括号内需要一个范围区间,返回的是一个可迭代对象(类型是对象),通过for循环可以将这个数字序列打印出来

  • range(3,7,2):,也就是[3,7)这样的左闭右开的区间,2为步长(一步走多远),所以打印出来就是:3,5
  • range(1,5):少了一个参数,少的是步长,默认步长为1,所以打印出来就是1,2,3,4
  • range(5):少了2个参数,除了步长少了,起始值也少了,默认为0,也就是[0,5)这样的左闭右开的区间,所以打印出来就是0,1,2,3,4

使用for循环遍历字符串"Python"的每个字符。

for word in "Python":print(word)

遍历列表:

# 遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:print(f"我喜欢吃{fruit}")

【实战】for实现累加计算

计算1+2+3+....+999+1000的结果

sum=0
for i in range(1,1001):  #实际区间[1,1001)sum = sum + i
print(sum)

2.2while循环

while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构,其语法格式如下:

while 条件表达式:代码块

执行while语句时,若循环条件的值为True,则执行之后的代码段,执行完代码段之后再次判断循环条件,如此往复,直至循环条件的值为False时循环终止,执行循环之后的代码。

【实战】while实现累加计算

再用while练习一下2.1的实战

i = 1               # 循环开始前就准备好变量i,保存要循环累加的数字,初始值为1
sum = 0             # 循环开始前就准备好sum变量,保存累加的结果,初始值为0
while i <= 1000:       # 使用while循环,循环结束条件就是i小于等于1000的时候sum += i          #我们要循环累加,所以不断地用新值i加到sum里i += 1            #循环的过程i代表每一次的新值,所以每次都需要更新加1
print(sum)          # 输出累加后的结果

若希望程序可以一直重复操作,则可以将循环条件的值设为True,如此便进入无限循环。(别轻易尝试!!!)

while True:print("我是无限循环...")

2.3嵌套循环

循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以划分为while循环嵌套和for循环嵌套。

1.while循环嵌套 while循环嵌套是指while语句中嵌套while或for语句。以while语句中嵌套while语句为例,while循环嵌套的语法格式如下:

while 条件表达式1:            # 外层循环代码块1while 条件表达式2:        # 内层循环代码块2

执行while循环嵌套时,若外层循环的循环条件1的值为True,则执行代码段1,并对内层循环的循环条件2进行判断。若循环条件2的值为True则执行代码段2,否则结束内层循环。内层循环执行完毕后继续判断外层循环的循环条件1,如此往复,直至循环条件1的值为False时结束外层循环。

【实战】while输出直角三角形

使用while循环嵌套输出一个由“*”构成的直角三角形。

i = 1
while i < 6:j = 0while j < i:print("*", end='')j += 1print()  #打印空?实际上是打印了一个换行符i += 1

2.for循环嵌套 for循环嵌套是指for语句中嵌套了while或for语句。以for语句中嵌套for语句为例,for循环嵌套的语法格式如下:

for 临时变量 in 可迭代对象:   # 外层循环代码块1for 临时变量 in 可迭代对象  # 内层循环代码块2

执行for循环嵌套时,程序会访问外层循环中目标对象的首个元素、执行代码段1、访问内层循环目标对象的首个元素、执行代码段2,然后访问内层循环中的下一个元素、执行代码段2……如此往复,直至访问完内层循环的目标对象后结束内层循环,转而继续访问外层循环中的下一个元素,访问完外层循环的目标对象后结束外层循环。因此,外层循环每执行一次,都会执行一轮内层循环。

【实战】for输出直角三角形

使用for循环嵌套输出一个由“*”构成的直角三角形。

for i in range(1, 6):for j in range(i):print("*", end=' ')print()

2.4跳转语句

2.4.1break

break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环。break语句通常与if语句配合使用,以便在条件满足时结束循环。

使用for循环遍历字符串Python,一旦遍历到字符o就使用break语句结束循环。

for word in "Python":if word == 'o':break                      # 结束循环print(word, end="  ")

2.4.2continue

continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。例如,在使用for循环遍历字符串Python时,遍历到字符o时使用continue语句跳出本次循环。

for word in "Python":if word == 'o':continue                 # 跳出本次循环print(word, end="  ")

2.4.3break和continue的异同

作用:提前结束循环行为

break:退出当前循环,继续执行循环代码块之后的语句

continue:跳至while/for判断要不要进入下一次循环

请比较下面两个代码块,推演代码执行结果。答案放评论区

i = 1  
while i <= 5:i += 1if i == 3:  break  print(i)
i = 1  
while i <= 5:i += 1  if i == 3:  continue   print(i) 

http://www.dtcms.com/a/363934.html

相关文章:

  • 最快的 C 语言 JSON 库 - yyjson
  • 爬虫-----最全的爬虫库介绍(一篇文章让你成为爬虫大佬,爬你想爬)
  • 【鸿蒙心迹】从疑惑到热爱:我的鸿蒙开发启蒙
  • Java消息中间件(RocketMQ)
  • Linux 文本处理实战手册
  • 【专栏升级】大模型应用实战并收录RAG专题,Agent专题,LLM重构数据科学流程专题,端侧AI专题,累计63篇文章
  • Redis 哨兵 (基于 Docker)
  • YOLO 目标检测:YOLOv5网络结构、Focus、CSP、自适应Anchor、激活函数SiLU、SPPF、C3
  • 3.2-C++基础组件
  • Kafka面试精讲 Day 5:Broker集群管理与协调机制
  • 深度学习-----通过本地数据实现图片识别的训练
  • PS痕迹检测器:基于深度学习的图像篡改检测
  • 撤销修改 情况⼀:对于⼯作区的代码,还没有 add
  • 浏览器内存 (JavaScript运行时内存)存储的优劣分析
  • linux(cut,sort,uniq ,tr,sed,awk)命令介绍
  • 贝叶斯定理:理解概率更新与实际场景应用
  • 在VS Code中直接操控浏览器
  • 预算紧张?这5款低代码平台免费还好用!
  • 光储充一体化智慧能源平台助力某能投公司绿色能源转型
  • 【面试场景题】如何理解设计模式
  • three.js手机端的4种旋转方式
  • 有鹿巡扫机器人:智慧清洁时代的多面手
  • (四)Python控制结构(条件结构)
  • MMORPG 游戏战斗系统架构
  • 2025互联网大厂Java后端面试:3-5年经验必问核心考点解析
  • 机器学习辅助的Backtrader资产配置优化策略
  • 【vue2】vue2.7x的项目中集成tailwind.css真的不要太香
  • Python 类的方法类型详解
  • 企业如何实现零工用工零风险?盖雅全自动化合规管控
  • 望获实时Linux:亚微秒级系统响应的实现方法