Python:程序的分支、循環(huán)結(jié)構(gòu)與函數(shù)的應(yīng)用

前言:程序的分支滑燃、循環(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)用更在于它們極大的提升了我們的解題能力!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仲墨,一起剝皮案震驚了整個(gè)濱河市勾缭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌目养,老刑警劉巖俩由,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異癌蚁,居然都是意外死亡幻梯,警方通過(guò)查閱死者的電腦和手機(jī)兜畸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碘梢,“玉大人咬摇,你說(shuō)我怎么就攤上這事∩饭” “怎么了肛鹏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)恩沛。 經(jīng)常有香客問(wèn)我在扰,道長(zhǎng),這世上最難降的妖魔是什么雷客? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任芒珠,我火速辦了婚禮,結(jié)果婚禮上搅裙,老公的妹妹穿的比我還像新娘皱卓。我一直安慰自己,他們只是感情好呈宇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布好爬。 她就那樣靜靜地躺著,像睡著了一般甥啄。 火紅的嫁衣襯著肌膚如雪存炮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天蜈漓,我揣著相機(jī)與錄音穆桂,去河邊找鬼。 笑死融虽,一個(gè)胖子當(dāng)著我的面吹牛享完,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播有额,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼般又,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了巍佑?” 一聲冷哼從身側(cè)響起茴迁,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萤衰,沒(méi)想到半個(gè)月后堕义,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脆栋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年倦卖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洒擦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怕膛,死狀恐怖熟嫩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘉竟,我是刑警寧澤邦危,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站舍扰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏希坚。R本人自食惡果不足惜边苹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望裁僧。 院中可真熱鬧个束,春花似錦、人聲如沸聊疲。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)获洲。三九已至阱表,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贡珊,已是汗流浹背最爬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留门岔,地道東北人爱致。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像寒随,于是被迫代替她去往敵國(guó)和親糠悯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353