版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第
5
章
流 程 控 制XXXX
大學(xué)XX
學(xué)院XXX
教授2學(xué)習(xí)目標(biāo):掌握程序流程圖的繪制方法了解條件語句了解循環(huán)語句了解多分支選擇語句了解跳轉(zhuǎn)語句思政內(nèi)涵:正確的判斷和正確的流程是獲得正確結(jié)果的關(guān)鍵。人生道路也是一樣,只有在人生道路中做出正確的決策判斷,才能有良好的收獲,廣大學(xué)子應(yīng)樹立正確的世界觀、人生觀和價(jià)值觀。第
5
章
流程控制3
5.1
程序流程計(jì)算機(jī)程序的執(zhí)行過程就是程序流程。和其他編程語言一樣,按照?qǐng)?zhí)行流程劃分,Python
程序可分為三大結(jié)構(gòu),即順序結(jié)構(gòu)、分支(選擇)結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu):自上而下依次執(zhí)行每一條代碼,不重復(fù)執(zhí)行任何代碼,也不跳過任何代碼。分支結(jié)構(gòu):也稱為選擇結(jié)構(gòu),在運(yùn)行過程中根據(jù)條件的不同可能會(huì)執(zhí)行不同的程序分支。循環(huán)結(jié)構(gòu):在運(yùn)行過程中有些代碼需要反復(fù)執(zhí)行。程序流程可以用文字描述,也可以用圖形描述。書寫文字比較方便,但不夠直觀;繪制圖形比較麻煩,但看起來直觀。流程圖是一種普遍的程序控制流程表示法,即使用圖形符號(hào)來表示程序的執(zhí)行過程。為了實(shí)現(xiàn)流程圖的可讀性4及一致性,通常使用美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)制定的統(tǒng)一圖形符號(hào)繪制流程圖。常見的流程圖符號(hào)如表
5-1
所示。表
5-1
常見的流程圖符號(hào)符號(hào)名稱含義端點(diǎn)、中斷標(biāo)準(zhǔn)流程的開始與結(jié)束,每個(gè)流程圖只有一個(gè)起始點(diǎn)進(jìn)程要執(zhí)行的處理判斷決策或判斷數(shù)據(jù)表示數(shù)據(jù)的輸入/輸出流向表示執(zhí)行的方向與順序文檔以文件的方式輸入/輸出聯(lián)系同一流程圖中從一個(gè)進(jìn)程到另一個(gè)進(jìn)程的交叉引用第
5
章
流程控制5使用表
5-1
中帶方向的箭頭和相應(yīng)的說明文字連接各圖標(biāo),就形成了程序流程圖,如圖5.1
所示。圖
5.1程序流程圖65.2 條件語句在編寫代碼時(shí),可以使用條件語句為程序增設(shè)條件,使程序產(chǎn)生分支,進(jìn)而有選擇地執(zhí)行不同的語句。條件語句包括if
語句、if-else
語句、if-elif-else語句等。5.2.1 if
語句if
語句是單分支條件語句,語法格式如下。if
邏輯條件:...其中,“邏輯條件”一般是一個(gè)比較表達(dá)式,如果該表達(dá)式返回
True,則會(huì)執(zhí)行冒號(hào)下面縮進(jìn)的代碼塊;如果該表達(dá)式返回
False,則會(huì)直接跳過冒號(hào)下面縮進(jìn)的代碼塊,按照順序執(zhí)行后面的程序。單分支流程圖如圖
5.2
所示。第
5
章
流程控制7圖
5.2 單分支流程圖下面使用if
語句實(shí)現(xiàn)一個(gè)考試成績(jī)?cè)u(píng)估的程序,示例代碼如程序段
P5.1
所示。8P5.1
單分支條件語句score=100ifscore>
60:print("成績(jī)合格,你很棒!")print("歡迎來到Python
語言課堂")運(yùn)行代碼,輸出結(jié)果如下。成績(jī)合格,你很棒!歡迎來到Python
語言課堂由以上示例的輸出結(jié)果可知,程序執(zhí)行了if
語句的代碼段。將以上示例中變量score
的值修改為
50,再次運(yùn)行代碼,輸出結(jié)果如下。歡迎來到Python
語言課堂由該輸出結(jié)果可知,修改score
的值后,程序未執(zhí)行if
語句的代碼段。第
5
章
流程控制95.2.2 if-else
語句if-else
語句是雙分支條件語句,語法格式如下。if
邏輯條件:...else:...當(dāng)邏輯條件表達(dá)式返回
True
時(shí),會(huì)執(zhí)行
if
后面的代碼塊;當(dāng)條件表達(dá)式返回False
時(shí),會(huì)執(zhí)行else
后面的代碼塊。雙分支流程圖如圖
5.3
所示。10圖
5.3 雙分支流程圖使用if-else
語句編寫的考試成績(jī)?cè)u(píng)估程序示例代碼如程序段P5.2
所示。P5.2
雙分支條件語句score=
100ifscore>
=60:第
5
章
流程控制11print("考試合格")else:print("考試不及格")運(yùn)行代碼,輸出結(jié)果如下??荚嚭细駥⒁陨鲜纠凶兞縮core
的值修改為
50,再次運(yùn)行代碼,輸出結(jié)果如下。考試不及格通過比較兩次的輸出結(jié)果可知,程序第一次執(zhí)行了if
語句的代碼段,打印了“考試合格”;修改
score
的值后,執(zhí)行了else
語句的代碼段,打印了“考試不及格”。125.2.3 if-elif-else
語句if-elif-[elif]else
語句是多分支條件語句,語法格式如下。if
邏輯條件
1:...
#
當(dāng)條件
1
為True
時(shí)執(zhí)行的代碼elif
邏輯條件
2:... #
當(dāng)條件
2
為True
時(shí)執(zhí)行的代碼[elif
邏輯條件n:]... #
當(dāng)條件n
為True
時(shí)執(zhí)行的代碼else:...
#
當(dāng)所有條件都為False
時(shí)執(zhí)行的代碼elif
指的是“else
if”,表示帶有條件的
else
子句。多向選擇的語法看似很復(fù)雜,其實(shí)非常簡(jiǎn)單,它只是在雙向選擇的基礎(chǔ)上增加了一個(gè)或多個(gè)選擇分支。第
5
章
流程控制13使用多分支條件語句編寫的考試成績(jī)?cè)u(píng)估程序示例代碼如程序段P5.3
所示。P5.3
多分支條件語句score=
90ifscore
>=90:print("考試優(yōu)秀")elif80<=score
<90:print("考試良好")elif70<=score
<80:print("考試中等")elif60<=score
<70:print("考試及格")else:print("考試不及格")14程序可以根據(jù)score
的值做出“成績(jī)優(yōu)秀”“成績(jī)良好”“成績(jī)中等”“成績(jī)及格”和“成績(jī)不及格”5
個(gè)等級(jí)的評(píng)估。5.2.4 if
語句嵌套if
語句是可以嵌套使用的,語法格式如下。if
條件
1:if
條件
2:... #
當(dāng)條件
1
和條件
2
都為True
時(shí)執(zhí)行的代碼else:#
當(dāng)條件
1
為True、條件
2
為False
時(shí)執(zhí)行的代碼...else:if
條件
2:第
5
章
流程控制15...#
當(dāng)條件
1
為
False、條件
2
為True
時(shí)執(zhí)行的代碼else:... #
當(dāng)條件
1
和條件
2
都為False
時(shí)執(zhí)行的代碼對(duì)于這種結(jié)構(gòu),我們不需要死記硬背,只需要從外到內(nèi)根據(jù)條件一個(gè)個(gè)地進(jìn)行判斷就可以了。示例代碼如程序段P5.4
所示。P5.4
if
語句的嵌套gender
=
"女"height=
172if
gender
==
"男":ifheight>
170:print("高個(gè)子男生")else:16print("矮個(gè)子男生")else:ifheight>
170:print("高個(gè)子女生")else:print("矮個(gè)子女生")運(yùn)行代碼,輸出結(jié)果如下。高個(gè)子女生在以上代碼中,性別
gender
是外層條件,身高
height
是內(nèi)層條件。修改變量gender
為“男”,修改
height
為
160,執(zhí)行代碼,輸出結(jié)果如下。矮個(gè)子男生第
5
章
流程控制17
5.3
循環(huán)語句在程序開發(fā)過程中有些代碼需要重復(fù)執(zhí)行。Python
提供了循環(huán)語句,使用該語句能以簡(jiǎn)潔的代碼實(shí)現(xiàn)重復(fù)操作。Python
中的循環(huán)語句有兩種,分別是while
循環(huán)和for
循環(huán)。5.3.1 while
循環(huán)語句while
循環(huán)語句的語法格式如下。while
條件表達(dá)式:代碼塊其中,代碼塊是指縮進(jìn)格式相同的多行代碼,在循環(huán)結(jié)構(gòu)中,它又稱為循環(huán)體。18while
循環(huán)流程圖如圖
5.4
所示。圖
5.4 while
循環(huán)流程圖使用while
循環(huán)計(jì)算
1+2+3+…+100
的和,示例代碼如程序段
P5.5
所示。第
5
章
流程控制19P5.5
while
循環(huán)i=1sum=0while
i<=100:sum
+=i
i
+=1print(sum)運(yùn)行代碼,輸出結(jié)果如下。5050在以上示例中,變量
i
是循環(huán)因子,其初始值為
1,會(huì)隨循環(huán)次數(shù)累加;變量sum
是所求的和,其初始值為
0。循環(huán)結(jié)束,執(zhí)行循環(huán)之后的打印語句,輸出sum
的值。20while
循環(huán)還常用來遍歷列表、元組和字符串,因?yàn)樗鼈兌贾С滞ㄟ^下標(biāo)索引獲取指定位置的元素。下面演示使用while
循環(huán)遍歷字符串變量,示例代碼如程序段P5.6
所示。P5.6
遍歷字符串my_char="http://www.ahu.net/python/"i=
0;whilei<len(my_char):print(my_char[i],end="")i=i+
1運(yùn)行代碼,輸出結(jié)果如下。/python/若希望程序可以一直重復(fù)操作,則可以將循環(huán)條件的值設(shè)為
True,如此便第
5
章
流程控制21進(jìn)入無限循環(huán)。雖然在實(shí)際開發(fā)中有些程序需要無限循環(huán)(如游戲的主要程序、操作系統(tǒng)的監(jiān)控程序等),但無限循環(huán)會(huì)占用大量?jī)?nèi)存,影響程序和系統(tǒng)的性能,開發(fā)者需酌情使用。5.3.2 for
循環(huán)語句for
循環(huán)常用于遍歷字符串、列表、元組、字典、集合等序列類型,逐個(gè)獲取序列中的各個(gè)元素。for
循環(huán)語句的語法格式如下。for
迭代變量
in
字符串/列表/元組/字典/集合:代碼塊其中,迭代變量用于存放從序列類型變量中讀取出來的元素,所以一般不會(huì)在循環(huán)中對(duì)迭代變量手動(dòng)賦值;代碼塊是指具有相同縮進(jìn)格式的多行代碼,22和循環(huán)結(jié)構(gòu)聯(lián)用,因此代碼塊又稱為循環(huán)體。目標(biāo)對(duì)象的元素個(gè)數(shù)決定了循環(huán)的次數(shù),目標(biāo)對(duì)象中的元素被訪問完之后循環(huán)結(jié)束。for
循環(huán)流程圖如圖
5.5
所示。圖
5.5for
循環(huán)流程圖第
5
章
流程控制23使用for
循環(huán)遍歷字符串的示例代碼如程序段P5.7
所示。P5.7
for
循環(huán)遍歷字符串my_char=
"/python/"forchin
my_char:print(ch,end="")運(yùn)行代碼,輸出結(jié)果如下。/python/使用for
循環(huán)進(jìn)行數(shù)值計(jì)算的示例代碼如程序段P5.8
所示。P5.8
for
循環(huán)計(jì)算print("計(jì)算
1+2+…+100
的結(jié)果為:")result=
0foriin
range(101):24result+=
iprint(result)運(yùn)行代碼,輸出結(jié)果如下。計(jì)算
1+2+…+100
的結(jié)果為:5050上面的代碼中,使用了
range()函數(shù),此函數(shù)是
Python
內(nèi)置函數(shù),用于生成一系列連續(xù)整數(shù),多用于for
循環(huán)中。當(dāng)用for
循環(huán)遍歷列表或元組時(shí),其迭代變量會(huì)先后被賦值為列表或元組中的每個(gè)元素并執(zhí)行一次循環(huán)體。示例代碼如程序段P5.9
所示。P5.9
for
循環(huán)遍歷列表my_list=[1,2,3]forelein
my_list:第
5
章
流程控制25print('ele=',
ele)運(yùn)行代碼,輸出結(jié)果如下。ele=
1ele=
2ele=
3在以上代碼中,把遍歷的列表改成元組,就可以使用
for
循環(huán)遍歷元組,讀者可以自己修改代碼練習(xí)。當(dāng)用for
循環(huán)遍歷字典時(shí),其迭代變量會(huì)先后被賦值為字典的每個(gè)元素的鍵值并執(zhí)行一次循環(huán)體。示例代碼如程序段P5.10
所示。P5.10
for
循環(huán)遍歷字典my_dict
=
{'python
教程':"/python/",\'shell
教程':"/shell/",\26'java
教程':"/java/"}foreleinmy_dict:print('ele=',
ele)運(yùn)行代碼,輸出結(jié)果如下。ele
=
python
教程ele
=
shell
教程ele
=
java
教程5.3.3 循環(huán)嵌套語句循環(huán)之間可以互相嵌套,進(jìn)而實(shí)現(xiàn)更為復(fù)雜的邏輯。循環(huán)嵌套按不同的循環(huán)語句可以分為while
循環(huán)嵌套和for
循環(huán)嵌套。第
5
章
流程控制271.
while
循環(huán)嵌套while
循環(huán)嵌套是指while
語句中嵌套了while
或for
語句。以
while
語句中嵌套while
語句為例,while
循環(huán)嵌套的語法格式如下。while
條件
1:條件
1
成立執(zhí)行的語句...while
條件
2:條件
2
成立執(zhí)行的語句
...下面使用while
循環(huán)嵌套打印一個(gè)九九乘法表,示例代碼如程序段P5.11所示。28P5.11
while
循環(huán)嵌套j=
1whilej<=
9:i=
1whilei<=
j:print(f'{i}*{j}={j*i}',
end='\t')i+=
1print()j+=
1運(yùn)行代碼,輸出結(jié)果如下。1*1=11*2=21*3=32*2=42*3=63*3=9第
5
章
流程控制1*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81292.
for
循環(huán)嵌套for
循環(huán)嵌套是指for
語句中嵌套了while
或for
語句。以for
語句中嵌套for
語句為例,for
循環(huán)嵌套的語法格式如下。for
i
in
相關(guān)容器(初始位置,最終位置,遍歷步調(diào)):... #
相關(guān)遍歷要求代碼30for
j
in
相關(guān)容器(初始位置,最終位置,遍歷步調(diào)):... #
相關(guān)遍歷要求代碼下面使用for
循環(huán)嵌套打印一個(gè)數(shù)字金字塔,示例代碼如程序段P5.12
所示。P5.12
for
循環(huán)嵌套layer
=
int(input("請(qǐng)輸入您想打印的數(shù)字三角形的層數(shù):"))for
i
in
range(1,
layer
+
1):forjinrange(1,i+
1):num=jprint(num,end="
")j+=
1i+=
1print("")第
5
章
流程控制31運(yùn)行代碼,輸入數(shù)據(jù),輸出結(jié)果如下。請(qǐng)輸入您想打印的數(shù)字三角形的層數(shù):511
212
3123
41234
55.4 多分支選擇語句Python
編程語言正在不斷發(fā)展,每次更新都會(huì)添加新的特性和功能,Python
3.10
中增加了多分支選擇語句,也稱為match-case
語句,允許在多個(gè)條件下控制程序流程。match-case
語句的語法格式如下。32match
parameter:casefirst
:do_something(first)casesecond
:do_something(second)......casen
:do_something(n)case_
:nothing_matched_function()match-case
語句使用match
關(guān)鍵字,通過參數(shù)parameter
與case
關(guān)鍵第
5
章
流程控制33字后的參數(shù)匹配,如果匹配成功,則執(zhí)行對(duì)應(yīng)的case
代碼段,“_”是通配符,當(dāng)沒有任何匹配項(xiàng)時(shí)運(yùn)行該代碼段。多分支選擇的示例代碼如程序段P5.13
所示。P5.13
多分支選擇day=input("請(qǐng)輸入一個(gè)數(shù)字(1~7):")match
day:case
"1":print("星期一")case
"2":print("星期二")case
"3":print("星期三")case
"4":34print("星期四")case
"5":print("星期五")case
"6":print("星期六")case
"7":print("星期日")case
_:print("請(qǐng)輸入一個(gè)有效數(shù)字!")運(yùn)行代碼,根據(jù)提示輸入數(shù)據(jù),輸出結(jié)果如下。請(qǐng)輸入一個(gè)數(shù)字(1~7):7星期日第
5
章
流程控制355.5
跳轉(zhuǎn)語句循環(huán)語句在條件滿足的情況下會(huì)一直執(zhí)行,但在某些情況下需要跳出循環(huán),例如,實(shí)現(xiàn)音樂播放器循環(huán)模式的切歌功能等。Python
提供了控制循環(huán)的跳轉(zhuǎn)語句:break
語句和
continue
語句。5.5.1
break語句break
語句用于結(jié)束循環(huán),若循環(huán)中使用了
break
語句,當(dāng)程序執(zhí)行到break
語句時(shí)就會(huì)結(jié)束循環(huán);若循環(huán)嵌套使用了
break
語句,當(dāng)程序執(zhí)行到break
語句時(shí)就會(huì)結(jié)束本層循環(huán)。break
語句通常與if
語句配合使用,以便在36條件滿足時(shí)結(jié)束循環(huán)。例如,在使用for
循環(huán)遍歷字符串"python"時(shí),遍歷到字符"o"就使用break語句結(jié)束循環(huán),具體代碼如程序段P5.14
所示。P5.14
break
語句forchin
"python":if
ch=="o":breakprint(ch,end="
")運(yùn)行代碼,輸出結(jié)果如下。pyt
h從以上輸出結(jié)果可以看出,程序沒有輸出字符"o"及后面的字符,說明當(dāng)程序遍歷到字符"o"時(shí)跳出了整個(gè)循環(huán),即結(jié)束了循環(huán)。第
5
章
流程控制375.5.2 continue
語句continue
語句用于在滿足條件的情況下跳出本次循環(huán),該語句通常也與if語句配合使用。例如,在使用
for
循環(huán)遍歷字符串"python"時(shí),遍歷到字符"o"就使用continue
語句跳出本次循環(huán),具體代碼如程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度模特形象授權(quán)及商業(yè)推廣合同3篇
- 《血葡萄糖檢測(cè)》課件
- 2024年棚戶區(qū)租賃與購(gòu)房組合合同
- 2024年玩具批發(fā)權(quán)授權(quán)合同
- 2024年專利許可合同12篇
- 私人住宅人工打水井施工合同
- 賓館大堂地彈門施工合同
- 保健服務(wù)合同管理規(guī)范文本
- 離職員工福利轉(zhuǎn)移協(xié)議
- 野生動(dòng)物保護(hù)挖機(jī)租賃協(xié)議
- 齊魯工業(yè)大學(xué)《食品原料學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 無薪留職協(xié)議樣本
- 工業(yè)區(qū)污水凈化服務(wù)合同
- 《建設(shè)項(xiàng)目工程總承包合同示范文本(試行)》GF-2011-0216
- 幼兒園中班音樂活動(dòng)《小看戲》課件
- 2024年下半年貴州六盤水市直事業(yè)單位面向社會(huì)招聘工作人員69人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 實(shí)+用法律基礎(chǔ)-形成性考核任務(wù)一-國(guó)開(ZJ)-參考資料
- 2024年小學(xué)校長(zhǎng)工作總結(jié)(3篇)
- 江蘇省揚(yáng)州市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含解析
- 《軟件開發(fā)流程》課件
- 2024年公司稅務(wù)知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論