Python詳細(xì)對(duì)比講解break和continue區(qū)別
前言
最近在回答問(wèn)答python區(qū)的問(wèn)題的時(shí)候,發(fā)現(xiàn)很多人對(duì)于這個(gè)break和continue分不清。所以,今天我就寫(xiě)篇文章來(lái)講一下(絕對(duì)不是為了方便我以后回答的時(shí)候復(fù)制)
break
在while和for循環(huán)中,只要滿(mǎn)足一定的條件,程序就會(huì)結(jié)束,或者進(jìn)入無(wú)限循環(huán)的境地。這個(gè)時(shí)候,我們就需要一個(gè)東西來(lái)幫助我們?cè)跐M(mǎn)足某種條件的情況下,主動(dòng)結(jié)束循環(huán)。或者說(shuō),我們希望有一個(gè)東西,能在循環(huán)的過(guò)程中的某個(gè)特定的階段跳出,結(jié)束循環(huán)。
break長(zhǎng)和if,elif,else搭配。
break的用法很簡(jiǎn)單,就像它定義所說(shuō)的,就是跳出循環(huán)。但是,有幾個(gè)需要注意的點(diǎn):
1. break只跳出一層循環(huán):for-for嵌套遍歷的情況的話,一個(gè)break只會(huì)跳出一個(gè)循環(huán)。如果這個(gè)break是在最里面的話,就只會(huì)結(jié)束里面for的循環(huán),進(jìn)入下一個(gè)外面for的循環(huán)。
2. break跳出是絕對(duì)跳出,這個(gè)跳出的循環(huán)不會(huì)再繼續(xù)循環(huán)了(除非是循環(huán)嵌套)。
3. break在while-else,for-else循環(huán)的時(shí)候會(huì)起到不一樣的效果。
a = 0 while(a<10): print(a) if a == 8: break a+=1 else: print("ok")
result:
0
1
2
3
4
5
6
7
8
a = 0 while(a<10): print(a) a+=1 else: print("ok")
result:
0
1
2
3
4
5
6
7
8
9
ok
例子
題目來(lái)源:??途W(wǎng)編程N(yùn)P9報(bào)數(shù)游戲
牛牛在和朋友玩報(bào)數(shù)游戲,他和朋友們圍成一圈,共有n個(gè)人,牛牛最初站在第m個(gè)位置。從第一個(gè)人開(kāi)始報(bào)數(shù),但凡報(bào)到3的倍數(shù)或者含三的數(shù)的人就退出圈子。請(qǐng)問(wèn)牛牛是第幾個(gè)退出圈子的人?
輸入描述:
第一行輸入n,n>2
第二行輸入m,m<n
輸出描述:
輸出一個(gè)整數(shù)表示每次有人退出時(shí)那個(gè)人的編號(hào)
輸出一個(gè)整數(shù)表示牛牛是第幾個(gè)退出圈子的人
思路:
while-for嵌套,確保這個(gè)會(huì)無(wú)限進(jìn)行,然后加上兩個(gè)break,一個(gè)是在牛牛是最后一個(gè)人的時(shí)候break,另一個(gè)是牛牛成為退出的人的時(shí)候break
代碼:
a = int(input()) b = int(input()) ls = [i for i in range(1,a+1)] c = [] flag = True cout = 0 num = 0 while True: for i in range(1,len(ls)+1): num += 1 if num % 3 == 0 or "3" in str(num): print("編號(hào)為{}的淘汰了".format(ls[i-1])) c.append(ls[i-1]) cout += 1 if ls[i-1] == b: print("第{}個(gè)".format(cout)) flag = False break ls = [i for i in range(1,a+1) if i not in c] if not flag: break
continue
continue會(huì)跳過(guò)(忽略)當(dāng)次循環(huán)的剩下語(yǔ)句,接著開(kāi)始下一次循環(huán)。多數(shù)和if一起使用,少數(shù)會(huì)出現(xiàn)在別的情況。
盡管continue會(huì)在if里面出現(xiàn),但是一旦運(yùn)行了continue,if外面的也會(huì)被跳過(guò)。
for i in range(1,3): if i % 2 == 0: continue print(i)
result:
1
例子
題目來(lái)源:??途W(wǎng)編程N(yùn)P17前十個(gè)偶數(shù)
通過(guò)給函數(shù) range()指定三個(gè)參數(shù)來(lái)創(chuàng)建一個(gè)列表my_list,其中包含 [1,10000] 中的所有奇數(shù);再使用一個(gè) for 循環(huán)將這些中是質(zhì)數(shù)數(shù)字都打印出來(lái)(每個(gè)數(shù)字獨(dú)占一行)。
思路:
先 range和迭代器一起生成一個(gè)list,然后continue搭配if判斷,輸出。
代碼:
ls = [i for i in range(2,10001)] for i in ls: notprime = False for j in range(2,i): if i % j != 0: continue notprime = True break if i == 2: notprime = True if not notprime: print(i)
對(duì)比
相同:
1. break 和 continue 都有著結(jié)束當(dāng)前這次循環(huán)的作用
2. break 和 continue 都經(jīng)常和if 搭配使用
3. break 和 continue 是單獨(dú)的語(yǔ)句,不需要參數(shù),也不能放在判斷語(yǔ)句中
不同:
1. break 是跳出循環(huán),不繼續(xù)下次循環(huán);continue是結(jié)束當(dāng)前這次循環(huán),但是還繼續(xù)下次循環(huán)
2. break 對(duì) for else 和 while else 有特殊的作用,continue沒(méi)有
3. break 應(yīng)用的要比continue廣,多數(shù)情況下用 break 而不是 continue
到此這篇關(guān)于Python詳細(xì)對(duì)比講解break和continue區(qū)別的文章就介紹到這了,更多相關(guān)Python break和continue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python練習(xí)之循環(huán)控制語(yǔ)句 break 與 continue
- 詳解Python如何在多層循環(huán)中使用break/continue
- python循環(huán)控制之break和continue流程控制語(yǔ)句
- Python基礎(chǔ)之python循環(huán)控制語(yǔ)句break/continue詳解
- python break和continue用法對(duì)比
- Python學(xué)習(xí)筆記之Break和Continue用法分析
- 簡(jiǎn)單了解python的break、continue、pass
- Python循環(huán)語(yǔ)句之break與continue的用法
- Python跳出循環(huán)語(yǔ)句continue與break的區(qū)別
相關(guān)文章
Python編寫(xiě)一個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注GUI程序附源碼
這篇文章主要介紹了Python編寫(xiě)一個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注GUI程序,本文給大家附上小編精心整理的源碼,需要的朋友可以參考下2019-12-12python在ubuntu中的幾種安裝方法(小結(jié))
本篇文章主要介紹了python在ubuntu中的幾種安裝方法(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12python?import?引用上上上級(jí)包的三種方法
這篇文章主要介紹了python?import?引用上上上級(jí)包的三種方法包的三種方法,需要的朋友可以參考下2023-02-02關(guān)于Django框架的關(guān)系模型序列化和一對(duì)多關(guān)系中的序列化解析
序列化的意思是把字典的形式轉(zhuǎn)化成Json格式。當(dāng)我們展示數(shù)據(jù)的時(shí)候需要使用,反序列化的話,就是Json轉(zhuǎn)成字典形式,存儲(chǔ)數(shù)據(jù)時(shí)候使用,需要的朋友可以參考下2023-05-05python 下 CMake 安裝配置 OPENCV 4.1.1的方法
這篇文章主要介紹了python 下 CMake 安裝配置 OPENCV 4.1.1的方法,文中給大家提到了CMake 安裝配置 OPENCV 4.1.1 解決各種問(wèn)題,需要的朋友可以參考下2019-09-09如何在Python中編寫(xiě)接口和請(qǐng)求外部接口
這篇文章主要介紹了如何在Python中編寫(xiě)接口和請(qǐng)求外部接口,requests庫(kù)來(lái)請(qǐng)求外部接口,按照請(qǐng)求方法分為get請(qǐng)求和post請(qǐng)求,下面和小編一起進(jìn)入文章了解更多的具體內(nèi)容吧2022-02-02PyCharm設(shè)置每行最大長(zhǎng)度限制的方法
今天小編就為大家分享一篇PyCharm設(shè)置每行最大長(zhǎng)度限制的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01