Python日誌之Python控制流(順序,分支,循環)

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章