for
else
for循環若是正常結束,纔會執行else語句。python
咱們寫一個for...else類型的語句以下:ide
#!/usr/local/python3/bin/python for i in range(10): print(i) else: print('main end')
運行以後咱們會發現,在這種狀況下,else後面的內容仍是執行了:code
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py 0 1 2 3 4 5 6 7 8 9 main end
那麼咱們設置一個停頓,以下所示:it
#!/usr/local/python3/bin/python import time for i in range(10): print(i) time.sleep(1) else: print('main end')
運行的時候咱們使用「ctrl+c」退出,以下:for循環
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py 0 1 ^CTraceback (most recent call last): File "forE.py", line 6, in <module> time.sleep(1) KeyboardInterrupt [root@izj6cdhdoq5a5z7lfkmaeaz ~]#
從上面的結果中能夠看出,程序退出以後拋出了一個異常,鍵盤中斷,這時候else後面的內容就沒有執行。ast
那麼咱們如今設置程序在某一個地方的時候退出,應該怎樣作呢?如今咱們設置一個當i等於5的時候,就退出循環,這時候就能夠用到for循環中的break:class
#!/usr/local/python3/bin/python import time for i in range(10): print(i) if i==5: break else: print('main end')
運行以後咱們會發現i的值到5就不日後運行了,else的內容也沒有執行:import
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py 0 1 2 3 4 5 [root@izj6cdhdoq5a5z7lfkmaeaz ~]#
咱們後面還能夠加上一些內容,當i等於3的時候continue,當i等於6的時候能夠寫個pass,進行佔位:module
#!/usr/local/python3/bin/python import time for i in range(10): if i==3: continue #有了continue,循環後面的語句都不會執行了 elif i==5: continue elif ==6: pass #佔位 print(i) else: print('main end')
運行以後咱們會發現,3和5都沒有在結果中體現出來:循環
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py 0 1 2 4 6 7 8 9 main end
若是咱們在佔位的地方寫一條讓整個程序退出的代碼,以下所示:
#!/usr/local/python3/bin/python import time import sys for i in range(10): if i==3: continue #有了continue,循環後面的語句都不會執行了 elif i==5: continue elif i==6: sys.exit() #退出整個程序 print(i) else: print('main end')
break 退出整個循環continue 退出當前循環,接着進入下一個循環pass 佔位sys.exit() 退出整個腳本