Python基础教程

006_Python循环控制

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),那么只能关闭运行程序才能退出死循环。

这篇文章对您有用吗?

我们要如何帮助您?