Python 知识量:10 - 41 - 150
在循环中,当满足某种条件时,可以利用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语句。
如果只是在满足条件时,需要忽略本轮循环,而不是结束整个循环,可以使用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循环。
循环中的循环称为嵌套循环。嵌套循环可以实现更复杂的功能,下面是一个打印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
循环嵌套的次数不受限制,但是嵌套越多,复杂性就越高,程序运行的也越慢。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6