Python

Python 知识量:10 - 41 - 150

4.5 循环控制><

跳出循环- 4.5.1 -

在循环中,当满足某种条件时,可以利用break语句及时跳出循环。下面对计算未知个数的数字和的程序进行改造,示例如下:

# break.py
total=0
i=1;
while True:
    get=input('Enter number '+str(i)+' or "done": ')
    if get=='done':
        break
    total=total+int(get)
    i=i+1
print('The sum is '+str(total))

运行结果为:

>>> 
====================== RESTART: D:\PythonTestFile\break.py =====================
Enter number 1 or "done": 21
Enter number 2 or "done": 62
Enter number 3 or "done": 39
Enter number 4 or "done": 46
Enter number 5 or "done": done
The sum is 168

在以上代码中,只需要1个输入语句,而且设置到循环体内。True代表循环条件总是满足的,如何没有限制,它将无限循环。通过if语句判断输入是否是“done”,如果是,就利用break跳出整个循环;如果不是,则进行累加,并开始下一轮循环。

以上含有break的程序看上去更加简洁,但是如果程序更加复杂了一些。因为不利于理解和容易出错,一般应尽量少用break语句。

忽略本轮循环- 4.5.2 -

如果只是在满足条件时,需要忽略本轮循环,而不是结束整个循环,可以使用continue语句。修改上节示例,当输入数字为100时,忽略本轮循环。

# continue.py
total=0
i=1;
while True:
    get=input('Enter number '+str(i)+' or "done": ')
    if get=='done':
        break
    if get=='100':
        continue
    total=total+int(get)
    i=i+1
print('The sum is '+str(total))

运行结果为:

>>> 
==================== RESTART: D:\PythonTestFile\continue.py ====================
Enter number 1 or "done": 10
Enter number 2 or "done": 20
Enter number 3 or "done": 100
Enter number 3 or "done": 30
Enter number 4 or "done": done
The sum is 60

虽然以上示例都是使用while循环,但break语句和continue语句也可以用于for循环。

嵌套循环- 4.5.3 -

循环中的循环称为嵌套循环。嵌套循环可以实现更复杂的功能,下面是一个打印1~9的乘法表程序:

# multiplication.py
for row in range(1,10):
    for col in range(1,row+1):
        c=row*col
        if c<10:
            print(' ',end='') #用于列对齐
        print(str(col)+'*'+str(row)+'='+str(c),' ',end='')
    print() #用于换行

运行结果为:

>>> 
================= RESTART: D:\PythonTestFile\multiplication.py =================
 1*1=1  
 1*2=2   2*2=4  
 1*3=3   2*3=6   3*3=9  
 1*4=4   2*4=8  3*4=12  4*4=16  
 1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
 1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
 1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
 1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
 1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

循环嵌套的次数不受限制,但是嵌套越多,复杂性就越高,程序运行的也越慢。