前言:程序的分支滑燃、循環(huán)結(jié)構(gòu)是Python編程中的重要內(nèi)容往果,通過(guò)掌握Python中的分支與循環(huán)結(jié)構(gòu)疆液,可以提升我們的代碼水平,更加清晰的體現(xiàn)了我們的編程邏輯以及為我們解題提供更好的方法棚放。程序的函數(shù)使用在編程中有著舉足輕重的地位枚粘,它能使程序的分支、循環(huán)結(jié)構(gòu)更好的使用飘蚯,表現(xiàn)為函數(shù)是組織好的馍迄,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一局骤,或相關(guān)聯(lián)功能的代碼段攀圈。我們可以在一段代碼自定義出一些函數(shù),以此來(lái)使我們更好更快地解決問(wèn)題峦甩,它相較于程序的分支與循環(huán)結(jié)構(gòu)有更強(qiáng)的邏輯性赘来,也能更好的展示我們的理解與思維能力。綜上凯傲,學(xué)好程序的分支犬辰、循環(huán)結(jié)構(gòu)及函數(shù)的使用,是學(xué)好Python的重中之重冰单。
基礎(chǔ):程序的分支結(jié)構(gòu)幌缝、程序的循環(huán)結(jié)構(gòu)、函數(shù)的定義與使用诫欠。
Ⅰ.程序的分支結(jié)構(gòu)
程序的結(jié)構(gòu)控制
①單分支結(jié)構(gòu):
單分支結(jié)構(gòu)是分支結(jié)構(gòu)中最簡(jiǎn)單的一種方式涵卵,它的使用方法如下:
單分支結(jié)構(gòu)只需要判斷一個(gè)條件,根據(jù)這個(gè)條件是否成立來(lái)決定是否執(zhí)行一段語(yǔ)句荒叼。
②二分支結(jié)構(gòu):
二分支結(jié)構(gòu)是根據(jù)條件判斷的不同而選擇不同執(zhí)行路徑的一種分支結(jié)構(gòu):
二分支結(jié)構(gòu)也只需要判斷一個(gè)條件轿偎,根據(jù)這個(gè)條件來(lái)決定執(zhí)行的語(yǔ)句塊,成立執(zhí)行if中的指令被廓,不成立執(zhí)行else中的語(yǔ)句坏晦。
二分支結(jié)構(gòu)還有一種緊湊形式,適用于簡(jiǎn)單表達(dá)式:
③多分支結(jié)構(gòu):
多分支結(jié)構(gòu)是根據(jù)不同條件來(lái)選擇語(yǔ)句塊運(yùn)行的一種分支結(jié)構(gòu):
分支結(jié)構(gòu)需要判斷多個(gè)條件嫁乘,根據(jù)判斷當(dāng)前條件是否成立來(lái)決定是否執(zhí)行當(dāng)前語(yǔ)句塊英遭,當(dāng)所有條件都不成立時(shí),執(zhí)行else后的語(yǔ)句塊亦渗。
條件判斷
條件判斷操作符:
①<:小于?②>:大于?③<=:小于等于?④>=:大于等于
⑤==:等于?⑥!=:不等于
條件判斷關(guān)鍵字:
x and y :兩個(gè)條件判斷x和y同時(shí)為T(mén)rue時(shí)汁尺,才為T(mén)rue法精,否則為False。
x or y:兩個(gè)條件判斷x和y同時(shí)為False時(shí),才為False搂蜓,否則為T(mén)rue狼荞。
not x :條件判定取反。
異常處理
例如在此代碼中:
我們輸入的并不是數(shù)字而是字符串帮碰,就會(huì)出現(xiàn)以下情況:
此時(shí)就需要使用到Python通過(guò)的異常處理的相關(guān)機(jī)制相味,異常處理有兩種非常基本的使用方法殉挽,使用保留字try和except丰涉,格式如下:
放在try中的語(yǔ)句塊1如果出現(xiàn)異常,將會(huì)在except中查找相同的異常類(lèi)型斯碌,執(zhí)行相應(yīng)的語(yǔ)句塊一死。如果except后面不跟隨異常類(lèi)型,那么就必須是最后一個(gè)except傻唾,表示除以上提到的異常類(lèi)型投慈,其余的異常都采用這個(gè)except的語(yǔ)句塊。
實(shí)例:
異常處理的高級(jí)用法使用到了保留字try冠骄、except伪煤、else和finally,格式如下:
多出來(lái)的else語(yǔ)句塊在沒(méi)有發(fā)生異常時(shí)執(zhí)行凛辣,finally語(yǔ)句塊一定執(zhí)行抱既。
Ⅱ.程序的循環(huán)結(jié)構(gòu)
遍歷循環(huán)
遍歷循環(huán)即遍歷某個(gè)結(jié)構(gòu)形成循環(huán)。
①計(jì)數(shù)循環(huán):(N次)
②特定循環(huán):
表示從M到N-1以K為步長(zhǎng)進(jìn)行循環(huán)蟀给。
③字符串遍歷循環(huán):
S為字符串蝙砌,c為s中的每個(gè)字符,即從s中提出每個(gè)字符循環(huán)跋理。
④列表遍歷循環(huán):
當(dāng)遍歷結(jié)構(gòu)采用列表時(shí)择克,可以稱(chēng)這個(gè)遍歷結(jié)構(gòu)為列表遍歷循環(huán),循環(huán)變量將會(huì)遍歷列表中的每一個(gè)元素前普。
輸出結(jié)果為:
無(wú)限循環(huán)
無(wú)限循環(huán)是由條件控制的循環(huán)運(yùn)行方式肚邢,它的使用方法如下:
反復(fù)執(zhí)行語(yǔ)句塊,直到條件不足如果不小心寫(xiě)成了死循環(huán)拭卿,可以使用<Ctrl>+<C>退出循環(huán)骡湖。
循環(huán)控制保留字
break和continue:Python通過(guò)了兩個(gè)循環(huán)控制保留字break和continue。break表示結(jié)束當(dāng)前所在循環(huán)峻厚,continue表示跳過(guò)當(dāng)次循環(huán)并不影響循環(huán)的繼續(xù)响蕴,它們都可以與for循環(huán)和while循環(huán)搭配使用。
循環(huán)的高級(jí)用法
循環(huán)可以和else搭配使用惠桃,else與循環(huán)處于同一級(jí)浦夷,在循環(huán)語(yǔ)句之后辖试,使用方法如下:
無(wú)論是for還是while,當(dāng)循環(huán)沒(méi)有被break保留字退出時(shí)(允許存在break)劈狐,此時(shí)執(zhí)行else的語(yǔ)句塊罐孝。簡(jiǎn)單來(lái)講,else語(yǔ)句塊可以作為“正撤实蓿”完成循環(huán)的一種獎(jiǎng)勵(lì)莲兢,與異常處理中的else類(lèi)似。案例:
運(yùn)行結(jié)果:
Ⅲ.Python的函數(shù)和代碼
函數(shù)的定義與使用
函數(shù)是一段具有特定功能的续膳、可重用的語(yǔ)句組改艇,用函數(shù)名來(lái)表示并通過(guò)函數(shù)名進(jìn)行功能調(diào)用。
函數(shù)能夠完成特定功能姑宽,對(duì)函數(shù)的實(shí)用不需要了解函數(shù)內(nèi)部實(shí)現(xiàn)原理遣耍,只要了解函數(shù)的的輸入和輸出方式即可。所以說(shuō)炮车,函數(shù)是一種功能抽象舵变。
使用函數(shù)有兩個(gè)目的:降低編程難度和代碼重用。所以在編程中的復(fù)雜功能可以使用函數(shù)實(shí)現(xiàn)瘦穆。用法:
Python使用 def 保留字定義了一個(gè)函數(shù)纪隙,并用return返回。
案例:計(jì)算10的階乘
輸出結(jié)果即為10的階乘扛或。
函數(shù)的調(diào)用過(guò)程
程序調(diào)用一個(gè)函數(shù)需執(zhí)行一下4個(gè)步驟:
(1)調(diào)用程序在調(diào)用處暫停執(zhí)行绵咱。
(2)在調(diào)用時(shí)將實(shí)參復(fù)制給函數(shù)的形參。
(3)執(zhí)行函數(shù)體語(yǔ)句熙兔。
(4)函數(shù)調(diào)用結(jié)束給出返回值悲伶,程序回到調(diào)用前的暫停處繼續(xù)執(zhí)行。
函數(shù)的參數(shù)傳遞
函數(shù)的參數(shù)可有可無(wú)但一定會(huì)有()住涉。
可選參數(shù)傳遞:
函數(shù)定義時(shí)可以設(shè)計(jì)可變數(shù)量參數(shù)麸锉,既不確定參數(shù)總數(shù)量。
函數(shù)的返回值
return語(yǔ)句用來(lái)退出函數(shù)并將程序返回被調(diào)用的位置繼續(xù)執(zhí)行舆声。同時(shí)花沉,函數(shù)可以沒(méi)有return,此時(shí)函數(shù)并不返回值媳握。函數(shù)也可以用return返回多個(gè)值碱屁,多個(gè)值以元組類(lèi)型保存。
局部變量和全局變量
局部變量是函數(shù)內(nèi)部的占位符蛾找,與全局變量重名但不同娩脾;函數(shù)運(yùn)算結(jié)束后,局部變量被釋放打毛,也可以用global保留字在函數(shù)內(nèi)部使用全局變量晦雨。
注:局部變量為組合數(shù)據(jù)且未創(chuàng)建時(shí)架曹,等同于全局變量。
e.g:
輸出結(jié)果為:
以上即為函數(shù)的定義與使用方法闹瞧。
綜合應(yīng)用實(shí)例解題操作
步驟:
實(shí)例①
寫(xiě)一個(gè)可以計(jì)算數(shù)字平方值的方法。
代碼:
輸出結(jié)果:
實(shí)例②
編寫(xiě)一個(gè)可以計(jì)算給定數(shù)的階乘的程序展辞。結(jié)果應(yīng)該以逗號(hào)分隔的順序打印在一行上奥邮。
假設(shè)向程序提供以下輸入:8
則輸出為:40320
代碼:
輸出結(jié)果:
實(shí)例③
給定一個(gè)整數(shù) num,從 1 到 num 按照下面的規(guī)則返回每個(gè)數(shù):
如果這個(gè)數(shù)被 3 整除罗珍,返回 'Fizz'洽腺。
如果這個(gè)數(shù)被 5 整除,返回 'Buzz'覆旱。
如果這個(gè)數(shù)能同時(shí)被 3 和 5 整除蘸朋,返回 'FizzBuzz'。
如果這個(gè)數(shù)既不能被 3 也不能被 5 整除扣唱,返回這個(gè)數(shù)字的字符串格式藕坯。
解題思路:
當(dāng)數(shù)字被 3 整除時(shí)返回 'Fizz',被5 整除噪沙,返回 'Buzz'炼彪,同時(shí)被 3 和 5 整除,返回 'FizzBuzz'正歼。
代碼:
輸出結(jié)果:
總結(jié)
???? 通過(guò)對(duì)程序的分支辐马、循環(huán)結(jié)構(gòu)的學(xué)習(xí),并將其導(dǎo)入函數(shù)中進(jìn)行應(yīng)用局义,不僅會(huì)增強(qiáng)我們程序的邏輯和思維的體現(xiàn)喜爷,且函數(shù)只需嵌入少量可執(zhí)行代碼,就能使代碼結(jié)構(gòu)更加簡(jiǎn)潔萄唇,從而大大簡(jiǎn)化代碼復(fù)雜性檩帐,提高代碼可讀性,減少重復(fù)代碼穷绵,模塊化代碼轿塔。更帥的應(yīng)用更在于它們極大的提升了我們的解題能力!