目录
Python循环控制
Python程序执行有三种情况:顺序执行,选择执行和循环执行。Python循环有while方式和for...in方式。
while循环
while循环是通过条件判断来决定是继续循环还是跳出循环。
while 条件判断:
执行程序块...
示例如下
sum=0
n=1
while n<=5:
sum=sum+n
print("每次循环时n和sum的值分别是:",n,sum)
n=n+1
print("1+2+3+4+5=",sum)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
每次循环时n和sum的值分别是: 1 1
每次循环时n和sum的值分别是: 2 3
每次循环时n和sum的值分别是: 3 6
每次循环时n和sum的值分别是: 4 10
每次循环时n和sum的值分别是: 5 15
1+2+3+4+5= 15
Process finished with exit code 0
for...in循环
for...in循环是另一种形式的循环。这种循环需要事先有一个序列,然后才能用in的方法依次取每一个序列中的元素。序列就是一串数据,这个串有n个单元(元素)组成。Python提供了很多序列生成函数,比如range函数可以生成等比数列。
for i in range(5):
print(i)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
0
1
2
3
4
Process finished with exit code 0
用for...in的方式实现1到5的累加
sum=0
for i in range(5):
sum=sum+(i+1)
print("每次循环i和sum的值分别是:",i,sum)
print("1+2+3+4+5=",sum)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
每次循环i和sum的值分别是: 0 1
每次循环i和sum的值分别是: 1 3
每次循环i和sum的值分别是: 2 6
每次循环i和sum的值分别是: 3 10
每次循环i和sum的值分别是: 4 15
1+2+3+4+5= 15
Process finished with exit code 0
range函数生成序列
函数语法
range(start,stop[,step])
start是计数的起始,默认从0开始。range(5)等价于range(0,5)
stop是计数的终止,但不包括此值。相当于数据整体往左移动了一位。
step是步长,默认为1。range(5)等价于range(0,5,1),这是最完整的写法。
range函数是Python内部函数,可以生成等差数列。range是个可迭代对象,也就是说可以与循环相结合,每次取一个,然后自动等待取下一个。
a=range(5)
print(a)
print(type(a))
for i in range(5):
print(i)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
range(0, 5)
<class 'range'>
0
1
2
3
4
Process finished with exit code 0
另一个示例。
a=range(10,21,2)
for i in a:
print(i)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
10
12
14
16
18
20
Process finished with exit code 0
continue语句跳出单次循环
continue语句一般与if结合使用,用来控制循环执行过程。continue语句用来控制某一次循环。也就是这次循环中continue之后的语句不用执行,请直接进行下一次循环过程了。
for i in range(5):
if(i==2):
continue
print(i)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
0
1
3
4
Process finished with exit code 0
一共循环5次,其中数值为2的这次循环没有输出结果,因为continue使程序跳过了本次循环。
break语句终止循环
break语句也是与if结合使用,用来控制循环执行过程。当循环中运行了break语句,则这个循环体内以后的循环都取消。
for i in range(5):
if(i==2):
break
print(i)
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
0
1
Process finished with exit code 0
相当于只有2次循环结果打印出来了。
continue语句能跳出当次循环。
break语句直接终止这个循环。
pass语句占位符
pass语句就是个语法占位符,什么也不做。如果程序没有写完整,又没有pass占位,则会报语法错误。
for i in range(5):
pass
pass就是个语句块占位符,可用于if块、while块和for块中,还可以用于后面要讲的函数块等。
循环嵌套
循环嵌套就是指循环代码块内又编写了循环。while可以与while嵌套,也可以与for嵌套,没有限制。
嵌套虽然没有限制,但是一般不会嵌套太多,比如嵌套5层循环以上(很少见)。
for i in range(5):
print("外部循环————",i)
j=0
while j<i:
print("内部循环:",j,end=",")
j=j+1
if(j==i):
print("内部循环结束")
程序运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
外部循环———— 0
外部循环———— 1
内部循环: 0,内部循环结束
外部循环———— 2
内部循环: 0,内部循环: 1,内部循环结束
外部循环———— 3
内部循环: 0,内部循环: 1,内部循环: 2,内部循环结束
外部循环———— 4
内部循环: 0,内部循环: 1,内部循环: 2,内部循环: 3,内部循环结束
Process finished with exit code 0
死循环
死循环一般用while实现,就是让while的循环条件一直为真。
a=3
while a==3:
print("下面是广播,请大家注意安全!")
死循环也有用,比如广播和监听等。
程序一旦进入死循环,如果没有设定退出条件(break),那么只能关闭运行程序才能退出死循环。