整理:python架构师很多时候,我们在处理业务的时候,并不是如果怎么样就怎么样,而是一直做某件事,直到全部做完,甚至永远做不完.....循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。
Python用关键字for和while来进行循环控制,但是没有其它语言的do...while语句。while循环while循环语句的控制结构图如下所示:
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070833171857931315537.png)
语法格式:while 判断表达式: 内部代码块“while”翻译成中文就是“当...”的意思,while循环用伪代码描述就是“当条件满足的时候,就一直运行while所管理的代码块,当条件不满足的时候,就结束while循环。
”看个例子:n = 100sum = 0counter = 1while counter <= n: sum = sum + counter counter += 1print("1 到 %d 之和为: %d"
% (n,sum))👉点击领取Python面试题手册Python从入门到进阶知识手册这段代码其实就是计算1加到100的和首先初始化了三个变量n,sum和counter,并分别赋值然后遇到while循环,检测它的判定语句counter是否小于等于n,如果是,则执行while内部的代码,让sum加上当前counter的值,然后counter本身再加上1。
执行完毕后,重新回到while的判定语句,再进行一次判定,如果依然满足条件,则继续执行sum加counter,counter自加一直到条件不再满足时,结束循环然后最后打印1到100的和为sum通常,我们要在循环条件,或循环体内设置退出条件,防止死循环,但有时候也需要无限循环。
例如Web服务器响应客户端的实时请求而下面则是一个没有退出机制的死循环,程序永远不会打印Good byewhileTrue: # 表达式永远为 true
s = input("输入点什么吧: ")print ("你输入的是: ", s)print ("Good bye!")while的else从句:while循环还可以增加一个else从句当while循环正常执行完毕,会执行else语句。
但如果是被break等机制强制提前终止的循环,不会执行else语句注意else与while平级的缩进方式!number = 10i = 0# i = 11while i < number: print(i)
i += 1else: print("执行完毕!")下面是被打断的while循环,else不会执行:number = 10i = 0while i < number:print(i) i += 1
if i == 7:breakelse:print("执行完毕!")for循环虽然与while一样都是循环的关键字,但for循环通常用来遍历可迭代的对象,如一个列表或者一个字典其一般格式如下:for
in :for ... in ....:属于固定套路其实我们在前面的章节已经或多或少的介绍过for的用法,尤其是遍历一些数据类型的时候sum = 0for x
in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + xprint(sum)for循环的else 子句:与while一样,for循环也可以有else子句同样是正常结束循环时,else子句执行。
被中途break时,则不执行循环的嵌套if判断可以嵌套,while和for当然也可以嵌套但是建议大家不要嵌套3层以上,那样的效率会很低下面是一个嵌套for循环结合else子句的例子:# 这是一个判断质数的程序。
for n in range(2, 100):for x in range(2, n):if n % x == 0:print(n, 等于, x, *, n//x)breakelse:# 循环中没有找到元素
print(n, 是质数)break语句通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出如果想在循环过程中退出循环,怎么办?用break语句!break只能用于循环体内。
其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出for letter inHello world
: # 第一个实例if letter == d:breakprint (当前字母为 :, letter)--------------------------------------------
var = 10# 第二个实例whilevar > 0: print (当期变量值为 :, var)var -= 1ifvar == 5:breakcontinue语句与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。
它不会退出和终止循环,只是提前结束当前轮次的循环同样的,continue语句只能用在循环内for letter inHello world: # 第一个实例if letter == o:
# 字母为 o 时跳过输出continueprint (当前字母 :, letter) -------------------------------------------------------var
= 10# 第二个实例whilevar > 0: var -= 1ifvar == 5: # 变量为 5 时跳过输出continueprint (当前变量值 :
, var)Python没有goto语法前面说了,在嵌套循环中,break只能跳出当前层的循环,无法全部跳出在C语言中有goto语法,可以实现这一功能,但是Python没有goto那有需求的时候怎么办呢?设置flag!。
flag = False# 用于控制外层循环的标志for i in range(10):if flag: # 当flag被内层循环设置为True的时候,跳出外层循环breakfor
j in range(10):if j==7: flag = Truebreak print(i,j)
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070833171857931356483.png)
程序员技术交流群
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070833171857931365167.png)
扫码进群记得备注:城市、昵称和技术方向。
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070834171857931458338.jpeg)
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070834171857931460906.png)
阅读更多Pandas 2.0正式版发布:Pandas vs Polars速度对比(文末送书)【Python教程】条件判断如虎添翼!ChatGPT迎来史诗级重磅更新!
![](http://ldjg88.com/zb_users/upload/2024/06/20240617070834171857931494769.gif)
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。