1 break只能跳出一層循環git
while True: for x in range(10): y = 2 * x + 1 print(y) if y > 9: break 這是一個死循環i從0到5後,跳出內層循環,外層仍是個條件一直爲真的循環,一直重複i從0到5
for n in range(100,1,-1): 計算100內的最大的質數,算法中排除偶然,遍歷到數字的根號值, if n%2==0: 大的for循環內,有三個部分if,for和else. continue for i in range(3,int(n**0.5)+1,2): if n%i==0: break else: print(n) break 97
內循環用來測試特定的整數n是否爲質數,若是其中的break語句獲得執行則說明n不是質數,而且因爲循環提早結束而不會執行後面的else子句。若是某個整數n爲質數,則內循環中的break語句不會執行,內循環天然結束後執行後面else子句中的語句,輸出質數n以後執行break語句跳出外循環。算法
for i in range(5): #尋找3*3,大循環內有三塊,內層for,else,和break ,程序順序執行這三塊 print("i:", i) for j in range(4): print("j:", j) if i * j == 9: print(i,j) break else: print(u"退出第一次FOR") continue break print(u"退出第二次FOR") 結果 i: 0 j: 0 j: 1 j: 2 j: 3 退出第一次FOR i: 1 j: 0 j: 1 j: 2 j: 3 退出第一次FOR i: 2 j: 0 j: 1 j: 2 j: 3 退出第一次FOR i: 3 j: 0 j: 1 j: 2 j: 3 3 3 退出第二次FOR
1,對於帶有else子句的循環結構,若是循環由於條件表達式不成立或序列遍歷結束而天然結束時則執行else結構中的語句,若是循環時由於執行了break語句而致使循環提早結束則不會執行else中的語句。app
2,一旦break語句被執行,將使得break語句所屬層次的循環提早結束;continue語句的做用時提早結束本次循環,忽略continue以後的全部語句,提早進入下一次循環。測試
2 forspa
from math import sqrt for n in range(84,80,-1): root=sqrt(n) print(root) if root == int(root): print (n) break else: print("didn't find it") 結果打印出9 root是浮點數,除了81時
a1='apple' for i in a1: print(i,end=' ') print() b1=['red','white','green'] for i in b1: print(i,end=' ') print() b2=['red','white','green'] for i in range(3): print(i,end=' ') #沒有遍歷b2 print() b3=['red','white','green'] for i in range(3): print(i,b3[i],end=' ') print() b4=['red','white','green'] for i in range(len(b4)): print(i,b4[i]) 用這一種,或者enumerate方法遍歷鍵和值 結果 a p p l e red white green 0 1 2 0 red 1 white 2 green 0 red 1 white 2 green
char='apple' list=['one',2,'three'] tem=('one',2,'three') dict={'one':'red',2:'blue',"three":'black'} for i in char: print(i) for i in list: print(i) for i in tem: print(i) for i in dict: print(i) 結果 a p p l e one 2 three one 2 three one 2 three 對字典遍歷時,時對‘鍵’的遍歷
digits=[1,2,3] for n in range(2): 這一次時用來決定遍歷的次數的 result=[] count=0 for i in digits: for j in digits: for k in digits: result.append(i*100+j*10+k) count+=1 print(result,count) 若是print和外層for一樣的縮進,看上去就顯示了1次結果,其實仍是執行了2次的 結果 打印了2次 [111, 112, 113, 121, 122, 123, 131, 132, 133, 211, 212, 213, 221, 222, 223, 231, 232, 233, 311, 312, 313, 321, 322, 323, 331, 332, 333] 27 [111, 112, 113, 121, 122, 123, 131, 132, 133, 211, 212, 213, 221, 222, 223, 231, 232, 233, 311, 312, 313, 321, 322, 323, 331, 332, 333] 27
3 選擇code
3.1 單分支選擇結構blog
if 表達式:three
語句塊it
當表達式值爲True或其餘與True等價的值時,表示條件知足,語句塊被執行,不然該語句塊不被執行,而是繼續執行後面的代碼,若是有的話。for循環
3.2 雙分支選擇結構
if 表達式:
語句塊1
else:
語句塊2
語句塊1和2總有一個會執行
3.3多分支選擇結構
if 表達式1:
語句塊1
elif 表達式2:
語句塊2
elif 表達式3:
語句塊3
else:
語句塊 n
從上往下,遇到真就結束。