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

輸出結果:

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 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

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