Python的for循環退出
阿新 • • 發佈:2018-01-11
python3 /usr interrupt 如果 怎樣 pri ... 程序 usr for
else
for循環如果正常結束,才會執行else語句。
else
for循環如果正常結束,才會執行else語句。
我們寫一個for...else類型的語句如下:
#!/usr/local/python3/bin/python
for i in range(10):
print(i)
else:
print(‘main end‘)
運行之後我們會發現,在這種情況下,else後面的內容還是執行了:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py
0
1
2
3
4
5
6
7
8
9
main end
那麽我們設置一個停頓,如下所示:
#!/usr/local/python3/bin/python import time for i in range(10): print(i) time.sleep(1) else: print(‘main end‘)
運行的時候我們使用“ctrl+c”退出,如下:
[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後面的內容就沒有執行。
那麽我們現在設置程序在某一個地方的時候退出,應該怎樣做呢?現在我們設置一個當i等於5的時候,就退出循環,這時候就可以用到for循環中的break:
#!/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的內容也沒有執行:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python forE.py
0
1
2
3
4
5
[root@izj6cdhdoq5a5z7lfkmaeaz ~]#
我們後面還可以加上一些內容,當i等於3的時候continue,當i等於6的時候可以寫個pass,進行占位:
#!/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() 退出整個腳本
Python的for循環退出