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