Python控制流:
所有程序都是在IDLE中運行
1.Python的三種控制流
(1).什麼是控制流
Python中程序代碼執行是有序的,有的代碼程序會從上倒下按順序執行,有的程序會跳轉着執行,有的程序代碼會選擇不同的分支去執行,有的程序代碼會循環的去執行。那麼到底什麼樣的程序會自上而下執行,哪些會選擇分支執行,什麼樣的可以循環執行呢?在Python中是有相應的控制語句進行標識的,控制語句他能控制某些代碼段的執行方式,我們把這些不同功能的控制語句稱爲控制流
(2).Python裏面有哪些控制流
#實例:
#控制流功能
#要實現:重複執行3段同樣的程序
#方式一:
i=0 print i i=i+1 print i i=0 print i i=i+1 print i i=0 print i i=i+1 print i
自上而下運行
#方式二:
for k in range(0,3): #重複語句 i=0 print i i=i+1 print i
#輸出結果:
0 1 0 1 0 1
#再比如,要實現:如果小明吃了飯了,輸出小明很乖,如果小明沒吃飯,輸出小明不乖的功能。
#平常情況按順序執行的話,無法實現這樣的功能,我們可以用控制流中的分支結構
xiaoming="eat" if xiaoming=="eat": print "小明很乖" else: print "小明不乖"
#輸出結果:
小明很乖
#控制流的類型
#控制流的類型有三種,一種是順序結構,一種是分支結構,一種是循環結構
#順序結構:
a=7 print a a=a-1 print a a=a+6 print a
#輸出結果:
7 6 12
#分支結構:
a=7 if a==8: print "She" else: print "He"
#輸出結果:
He
#循環結構:
a=7 #不爲0則爲真 while a: #當a爲真時一直執行 print "helloo" a=a-1 #a=0時停止循環
#輸出結果:
helloo helloo helloo helloo helloo helloo helloo
2.認識分支結構-if
(1).認識if語句
Python中if語句是用來判斷選擇執行那個語句塊的,下面我們通過實例認識if語句
#實例:
#if語句
#if語句的格式用法:
if 是這樣:
執行該部分語句
elif 或者是這樣:
執行elif部分語句
else 或者以上情況都不是:
執行該部分語句
(2).if語句使用實例:
#一種情況的if用法
a=8 if a==8: #這裏的等號注意是== print "hello"
#輸出結果:
hello
a=8 if a!=8: print "hehe"
#輸出結果:
>>> >>>
不執行
#兩種選擇情況下的if用法
a=8 if a==8: print "She" else: print "He"
#輸出結果:
She
#三種選擇情況下的if用法
a=5 if a==7: print "I" elif a>7: print "he" elif a<6: print "hello" else: print "she"
#輸出結果:
hello
#if語句使用要點
要點:各分支儘量不重複,並且儘量包含全部可能性
'''
比如我們要按成績高低分爲優良差,比如這樣劃分的條件是比較合理的0<=成績<80爲差,80<=成績<90爲良,
90<=成績<=100爲優。
而這樣劃分的條件是不合理的:0<成績<80爲差,80<=成績<90爲良,90<=成績<100。比如如果一個人成績是0分、100分、80分、90分這種臨界條件的時候就沒辦法判斷執行哪部分語句了。
'''
臨界點不重複
a=80 if 80<a<=100: print "好" elif 0<a<=80: print "差"
#輸出結果:
差
3.認識循環結構while
(1).什麼是while語句
Python中的while語句也是用來控制一段語句重複執行的
#while語句使用結構
'''
while 條件爲真:
循環執行“該部分語句”直到條件不滿足真
else:
如果條件爲假,執行該部分語句
#else部分可以省略
'''
(2).while語句的使用
#兩個簡單的while語句實例
#第一個是最簡單沒有else部分的
a=True while a: print "ABC"
#輸出結果:
無限個ABC
#第二個是有else部分的
b=False while b: print "ABC"#循環部分,爲真一直循環 else: print "DEF"#else部分不循環,運行一次就終止了
#輸出結果:
DEF
#我們再來看一下比較複雜一點的有嵌套的while語句
a=1 while a<10: if a<=5: #循環部分,通過if分支選擇 print a else: print "hello" a=a+1 #循環部分,通過if分支選擇 else: print "test"
#輸出結果:
1 2 3 4 5 hello hello hello hello test
總結:可以利用縮進位置來判斷前後的一致性,如上面出現的兩個else的位置不同,對應的結構也不同
4.認識循環結構的for語句
(1).什麼是for語句
另外一種形式的循環語句,可用來遍歷某一對象,還具有一個附帶的可選的else塊,主要用於處理for語句中包含的break語句。如果for循環未被break終止,則執行else塊中的語句。
break 在需要時終止for循環,continue 跳過位於其後的語句,開始下一輪循環。
for語句的格式如下:
>>>for <i> in <對象集合>:
if <條件>:
(break)
if <條件>:
(continue)
<其他語句>
else:
<>
(2).for語句的使用
#for語句
'''
for語句格式:
for i in 集合:
執行該部分
else:
執行該部分
'''
#實例:
#第一個for語句
for i in [1,2,8,9,0]: print i
#輸出結果:
1 2 8 9 0
#學會使用range函數,第二個for語句,生成一個集合序列,從頭到尾
for i in range(1,7): #range的集合是從1到n-1,不包括末尾 print "hello"
#輸出結果:
6個hello,而不是7個
for i in range(1,10,3):#(1,10,3)從1到10,3爲步長,就是隔得數字大小,默認爲1 print i #就是取1,4,7,取不到末尾
#輸出結果:
1 4 7
#最後看一個帶嵌套的for語句
for i in range(1,10):#循環9次 if i%2==0: print i print "偶數" else: print i print "奇數"
#輸出結果:
1 奇數 2 偶數 3 奇數 4 偶數 5 奇數 6 偶數 7 奇數 8 偶數 9 奇數
5.Break語句
功能:打破程序的執行,常用語循環結構,當循環結構中出現break時應該強行停止中止循環,然後退出循環
(1).Break語句的使用
#break語句用法
break語句是強制停止循環執行的意思,break語句用在循環語句中,出現break的地方將直接停止該循環地執行。
#break語句用在while循環中
a=1 while a: print a a=a+1 #循環體 if a==10: break #沒有break的話就會陷入死循環
#輸出結果:
從1到9,當a=9時就break
#break語句在for循環中
for i in range(5,9): print i if i>6: break#當達到break條件的時候,當前條件仍會執行一次,然後再停止
#輸出結果:
5,6
#break語句在雙層循環語句中
a=10 while a<=12: #外循環 a=a+1 for i in range(1,7): print i #內循環 if i==5: break
#輸出結果:
內循環被外循環重複三次:a=10,a=11,a=12
重複三次i:1,2,3,4,5
a=10 while a<=12: a=a+1 for i in range(1,7): print i if i==5: break if a==11:#a=11就停止了 break
#輸出結果:
1 2 3 4 5
6.continue語句
(1).什麼是continue語句
強行停止了這次循環的這一次執行,直接跳到下一次,也就是停止這一次,執行下一次
不像Break直接停止之後的所有循環
(2).continue語句的使用方法
#continue語句的使用
'''
continue語句是放在循環語句中的,用來結束本次循環的語句。
'''
#continue語句在while循環中
#首先我們得知道循環是分很多次的,而continue語句是終止該次循環,而不是終止該循環。
a=1 while a<7: a=a+1 if a==3: continue print a
#輸出結果:
2 4 5 6
#continue語句在for循環中,並比較以下兩個程序a和程序b
#程序a
for i in range(1,7): if i==3: continue print i
#輸出結果:
1 2 4 5 6
#程序b
for i in range(1,7): print i if i==3: continue
#輸出結果:
1 2 3 4 5 6
#continue語句在雙層循環語句中
a=1 while a<7: a=a+1 if a==4: #a=1,a=2,a=3,a=5,a=6 continue for i in range(7,10): if i==9: continue print i
#輸出結果:
輸出5次7,8
(3).Break語句和Continue語句的區別
#continue語句與break語句的區別
'''
continue語句指的是結束執行本次循環中剩餘的語句,然後繼續下一輪的循環。
而break語句指的是直接結束這個循環,包括結束執行該循環地剩餘的所有次循環。
'''
#區分程序c和程序d
#程序c
for i in range(10,19): if i==15: continue print i
#輸出結果:
10,11,12,13,14,16,17,18
#程序d
for i in range(10,19): if i==15: break print i
#輸出結果:
10,11,12,13,14,15