您的位置 首页 php

Python技术分享—循环控制

此文来源于微博和今日头条:逻二妞,转载请注明出处,谢谢
 

循环控制

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。

Python用关键字for和while来进行循环控制,但是没有其它语言的do…while语句(在 Java 和PHP中都有do while)。

while循环

while 循环语句 的控制结构图如下所示:

while 判断表达式:
 内部代码块
接下来看一个具体的案例,求1-100之间的总和
n = 100
sum = 0
counter = 1
while counter <= n:
 sum = sum + counter
 counter += 1
print("1 到 %d 之和为: %d" % (n,sum))
-----------------------------------------
通常在循环条件中,会设置退出条件,防止程序死循环。
while True:
 s = input("what's you name:")
 print("you name is %s"%s)
print("bye")
这个程序永远也不会打印bye。
 

while的else从句:

while循环还可以增加一个else从句。当while循环正常执行完毕,会执行else语句。注意else与while平级的缩进方式!

 number  = 10
i = 0
# i = 11
while i < number:
 print(i)
 i += 1
else:
 print("执行完毕!")
 

如果是被 break 等机制强制提前终止的循环,不会执行else语句。

number = 10
i = 0
while i < number:
 print(i)
 i += 1
 if i == 7:
 break 
else:
 print("执行完毕!")
 

for循环

虽然与while一样都是循环的关键字,但for循环通常用来遍历可迭代的对象,如一个列表或者一个字典。其一般格式如下:

for <variable> in <sequence>:
 <statements>
for ... in ....:属于固定套路
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
 sum = sum + x
print(sum)
 

循环的嵌套

if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。
# 这是一个判断质数的程序
# 一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)
for n in range(2, 100):
 for x in range(2, n):
 if n % x == 0:
 print(n, '等于', x, '*', n//x)
 break
 else:
 # 循环中没有找到元素
 print(n, ' 是质数')
 # print(n,end = ', ')
 

break语句

想在循环过程中退出循环,怎么办?用break语句!
break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。
Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。
for  letter  in 'Hello world': # 第一个实例
 if letter == 'r':
 break
 print ('当前字母为 :', letter)
-------------------------------------------- 
 var  = 10 # 第二个实例
while var > 0: 
 print ('当前变量值为 :', var)
 var -= 1
 if var == 5:
 break
 

continue语句

与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。
for letter in 'Hello world': # 第一个实例
 if letter == 'o': # 字母为 o 时跳过输出
 continue
 print ('当前字母 :', letter)
 -------------------------------------------------------
var = 10 # 第二个实例
while var > 0: 
 var -= 1
 if var == 5: # 变量为 5 时跳过输出
 continue
 print ('当前变量值 :', var)
 

刚才前面跟大家说过,python中的break只能跳出当前层的循环,无法全部跳出。那如果有这么需求怎么办?

设置flag
flag = False # 用于控制外层循环的标志
for i in range(10):
 if flag: # 当flag被内层循环设置为True的时候,跳出外层循环
 break
 for j in range(10):
 if j==7:
 flag = True
 break
 print(i,j)
 

(写在最后,由于以后每天晚上九点半之后会更新Python基础的知识点,记得来看哦!)

文章来源:智云一二三科技

文章标题:Python技术分享—循环控制

文章地址:https://www.zhihuclub.com/152634.shtml

关于作者: 智云科技

热门文章

网站地图