最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解Python中復(fù)合語(yǔ)句的用法

 更新時(shí)間:2022年07月24日 15:37:24   作者:crleep  
復(fù)合語(yǔ)句是包含其它語(yǔ)句(語(yǔ)句組)的語(yǔ)句;它們會(huì)以某種方式影響或控制所包含其它語(yǔ)句的執(zhí)行。通常,復(fù)合語(yǔ)句會(huì)跨越多行,雖然在某些簡(jiǎn)單形式下整個(gè)復(fù)合語(yǔ)句也可能包含于一行之內(nèi)。本文就來(lái)講講Python中復(fù)合語(yǔ)句的使用

Python復(fù)合語(yǔ)句

復(fù)合語(yǔ)句是包含其它語(yǔ)句(語(yǔ)句組)的語(yǔ)句;它們會(huì)以某種方式影響或控制所包含其它語(yǔ)句的執(zhí)行。通常,復(fù)合語(yǔ)句會(huì)跨越多行,雖然在某些簡(jiǎn)單形式下整個(gè)復(fù)合語(yǔ)句也可能包含于一行之內(nèi)。

if、while和for語(yǔ)句用來(lái)實(shí)現(xiàn)傳統(tǒng)的控制流程構(gòu)造。try語(yǔ)句為一組語(yǔ)句指定異常處理和/和清理代碼,而with語(yǔ)句允許在一個(gè)代碼塊周?chē)鷪?zhí)行初始化和終結(jié)化代碼。
函數(shù)和類(lèi)定義在語(yǔ)法上也屬于復(fù)合語(yǔ)句。

一條復(fù)合語(yǔ)句由一個(gè)或多個(gè)子句組成。一個(gè)子句則包含一個(gè)句頭和一個(gè)句體。特定復(fù)合語(yǔ)句的子句頭都處于相同的縮進(jìn)層級(jí)。

每個(gè)子句頭以一個(gè)作為唯一標(biāo)識(shí)的關(guān)鍵字開(kāi)始并以一個(gè)冒號(hào)結(jié)束。

子句體是由一個(gè)子句控制的一組語(yǔ)句。子句體可以是在子句頭的冒號(hào)之后與其同處一行的一條或由分號(hào)分隔的多條簡(jiǎn)單語(yǔ)句,或者也可以是在其之后縮進(jìn)的一行或多行語(yǔ)句。只有后一種形式的子句體才能包含嵌套的復(fù)合語(yǔ)句。

1.if 語(yǔ)句

if 語(yǔ)句用于有條件地執(zhí)行。if語(yǔ)句的一般語(yǔ)法格式如下:

if 條件表達(dá)式:
子句體1
[elif 條件表達(dá)式:
子句體2]* # *號(hào)代表該字句可以是0或多個(gè),下同
[else:
子句體3]

if語(yǔ)句通過(guò)對(duì)條件表達(dá)式進(jìn)行求值,如果為真則執(zhí)行相應(yīng)的子句體,如果全都為假,可選的else子句體將會(huì)被執(zhí)行。

注意:

1、False、None、0、""、()、[]、{}`都視為假

2.while 語(yǔ)句

while 語(yǔ)句用于在表達(dá)式保持為真的情況下重復(fù)地執(zhí)行,一般語(yǔ)法格式為:

while 條件表達(dá)式:
子句體1
[else:
子句體2]

while語(yǔ)句會(huì)重復(fù)地檢驗(yàn)表達(dá)式,并且如果其值為真就執(zhí)行子句體1;如果表達(dá)式值為假(這可能在第一次檢驗(yàn)時(shí)就發(fā)生),則可選的else子句體將會(huì)被執(zhí)行。

如果在第一個(gè)子句體中使用了break語(yǔ)句,則將終止循環(huán)且不執(zhí)行 else 子句體。

如果在第一個(gè)子句體中使用了continue 語(yǔ)句,則在執(zhí)行時(shí)將跳過(guò)子句體中的剩余部分并返回檢驗(yàn)表達(dá)式。

示例:求1-100整數(shù)的和

b = 0
s = 0
while b < 100:
    b += 1
    s += b
print(s)

輸出:

5050

實(shí)例:判斷某個(gè)數(shù)是否是質(zhì)數(shù)?

num = 87
i = 2
while i < num:
    if num % i == 0:
        print(f'{num} 不是質(zhì)數(shù)')
        break
    i += 1
else:
    print(f'{num} 是質(zhì)數(shù)')

輸出:

87 不是質(zhì)數(shù)

3.for 語(yǔ)句

for 語(yǔ)句用于對(duì)序列(例如字符串、元組或列表)或其他可迭代對(duì)象中的元素進(jìn)行迭代,一般語(yǔ)法格式為:

for 變量 in 序列:
子句體1
[else:
子句體2]

for語(yǔ)句會(huì)每次從序列中拿一個(gè)元素出來(lái)并賦值給變量,然后執(zhí)行子句體1。當(dāng)序列中所有的元素都獲取完畢后,則可選的else子句體將會(huì)被執(zhí)行。

和While語(yǔ)句一樣,如果在子句體1中使用了break語(yǔ)句,則將終止循環(huán)且不執(zhí)行 else 子句體。

如果在子句體1中使用continue 語(yǔ)句,則在執(zhí)行時(shí)將跳過(guò)子句體中的剩余部分并返回檢驗(yàn)表達(dá)式。如果此時(shí)沒(méi)有下一項(xiàng),則會(huì)執(zhí)行else子句體(如果存在else子句的話(huà))。

示例

langs = ['c', 'c++', 'python', 'java']
for i in langs:
    print(i)

輸出:

c
c++
python
java

說(shuō)明:

1、for 循環(huán)會(huì)對(duì)目標(biāo)列表中的變量進(jìn)行賦值。這將覆蓋之前對(duì)這些變量的所有賦值,包括在 for 循環(huán)體中的賦值,所以我們不能通過(guò)修改循環(huán)變量的值來(lái)達(dá)到修改循環(huán)次數(shù)的目的。

for i in [1, 2, 3]:
    print(i)
    i = 5

2、在使用for循環(huán)中,循環(huán)變量名最好用_開(kāi)頭的變量名,甚至直接就用_這樣的變量名,這樣就不會(huì)和外部變量名稱(chēng)沖突。

3、for循環(huán)經(jīng)常搭配range函數(shù)使用。range函數(shù)可以生成一系列的整型數(shù)字。比如:range(5)可以生成:0,1,2,3,4。

4.try 語(yǔ)句

try語(yǔ)句可以用來(lái)捕獲一組語(yǔ)句中指定的異常并處理,也可以用來(lái)清理代碼。try語(yǔ)句有兩種語(yǔ)法格式。

格式一:用來(lái)清理代碼

try:
子句體1
finally:
子句體2
子句體1中的語(yǔ)句將會(huì)一條一條的執(zhí)行,如果某條語(yǔ)句報(bào)錯(cuò),則跳過(guò)子句體1中剩下的其他語(yǔ)句,直接執(zhí)行子句體2中的語(yǔ)句。

格式二:用來(lái)捕獲異常并處理

try:
子句體1
[except 異常1: 或 except (異常1, 異常2):
子句體2]*
[else:
子句體3]
[finally:
子句體4]

語(yǔ)句塊1中的語(yǔ)句將會(huì)一條一條的執(zhí)行,如果某條語(yǔ)句報(bào)錯(cuò),則跳過(guò)語(yǔ)句塊1中剩下的其他語(yǔ)句,然后根據(jù)異常原因到except語(yǔ)句中匹配異常,如果匹配到了,則執(zhí)行相應(yīng)的語(yǔ)句塊2中的語(yǔ)句。

如果try子句中的語(yǔ)句塊1沒(méi)有引發(fā)異常,也沒(méi)有執(zhí)行return、continue或break語(yǔ)句,那么可選的else子句將會(huì)被執(zhí)行。并且else子句中的異常不會(huì)被except子句捕獲并處理。

而無(wú)論情況如何,finally子句體在try語(yǔ)句結(jié)束前總會(huì)被執(zhí)行。

1、可以通過(guò)sys.exc_info()來(lái)訪問(wèn)異常的詳細(xì)信息。返回一個(gè) 3 元組,由異常類(lèi)、異常實(shí)例和回溯對(duì)象組成。如下:

import sys
print(sys.exc_info())
try:
    5 + '5'
except:
    print(sys.exc_info())

輸出:

(None, None, None)
(<class 'TypeError'>, TypeError("unsupported operand type(s) for +: 'int' and 'str'"), <traceback object at 0x000001564D162700>)

2、可以使用except:或者except Exception,因?yàn)樵赑ython中所有的異常都是Exception異常的子類(lèi)。如下:

try:
    1/0
except Exception:
    print('出錯(cuò)啦~')

輸出:

出錯(cuò)啦~

3、可以使用as關(guān)鍵字獲取到出錯(cuò)的原因,如下:

try:
    1/0
except Exception as err:
    print(f'出錯(cuò)啦~,出錯(cuò)原因:{err}')

輸出:

出錯(cuò)啦~,出錯(cuò)原因:division by zero

5.with 語(yǔ)句

with 語(yǔ)句用于包裝帶有使用上下文管理器定義的方法的代碼塊的執(zhí)行。這允許對(duì)普通的 try...except...finally 使用模式進(jìn)行封裝以方便地重用。

6.match 語(yǔ)句

match語(yǔ)句是Python3.10版本中新增的功能。

在條件分支中,如果可能情況不多,可以使用if語(yǔ)句來(lái)實(shí)現(xiàn)。如果可能的情況比較多,則需要在if語(yǔ)句中使用多個(gè)elif子句來(lái)實(shí)現(xiàn)。從Python3.10版本以后就可以開(kāi)始使用match語(yǔ)句來(lái)實(shí)現(xiàn)了。

match語(yǔ)句的基本語(yǔ)法格式如下:

match 變量/表達(dá)式:
case 值1 [約束項(xiàng)1]:
子句體1
case 值2 [約束項(xiàng)2]:
子句體2
...
[case :
*子句體*] # 最多有一個(gè),且必須是最后一個(gè)子句

1、match語(yǔ)句會(huì)對(duì)變量或者表達(dá)式進(jìn)行求值,然后與case中的值匹配,如果匹配成功則執(zhí)行相應(yīng)case子句體,剩下所有的case子句則全部跳過(guò)不執(zhí)行。如果全部匹配不成功,則最后可選的case _會(huì)被執(zhí)行。

2、語(yǔ)法中的約束項(xiàng)采用的形式為if 表達(dá)式,只有case子句匹配成功,并且后面的約束項(xiàng)中的表達(dá)式也為真時(shí),才執(zhí)行相應(yīng)的case子句體。

3、case _是一個(gè)必定匹配的case塊,意味著能夠匹配所有情況。match語(yǔ)句中最多可以有一個(gè)必定匹配的case塊,而且必須是最后一個(gè)。

到此這篇關(guān)于一文詳解Python中復(fù)合語(yǔ)句的用法的文章就介紹到這了,更多相關(guān)Python復(fù)合語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁(yè)

    如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁(yè)

    這篇文章主要介紹了如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁(yè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python采用requests庫(kù)模擬登錄和抓取數(shù)據(jù)的簡(jiǎn)單示例

    python采用requests庫(kù)模擬登錄和抓取數(shù)據(jù)的簡(jiǎn)單示例

    這篇文章主要介紹了python采用requests庫(kù)模擬登錄和抓取數(shù)據(jù)的簡(jiǎn)單示例,代碼簡(jiǎn)單卻功能強(qiáng)大!需要的朋友可以參考下
    2014-07-07
  • 使用 Python 讀取電子表格中的數(shù)據(jù)實(shí)例詳解

    使用 Python 讀取電子表格中的數(shù)據(jù)實(shí)例詳解

    這篇文章主要介紹了使用 Python 讀取電子表格中的數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python數(shù)據(jù)分析之彩票的歷史數(shù)據(jù)

    Python數(shù)據(jù)分析之彩票的歷史數(shù)據(jù)

    這篇文章主要介紹了Python數(shù)據(jù)分析之彩票的歷史數(shù)據(jù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python繪制股票移動(dòng)均線(xiàn)的實(shí)例

    Python繪制股票移動(dòng)均線(xiàn)的實(shí)例

    今天小編就為大家分享一篇Python繪制股票移動(dòng)均線(xiàn)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python實(shí)現(xiàn)獲取sonarqube數(shù)據(jù)

    Python實(shí)現(xiàn)獲取sonarqube數(shù)據(jù)

    sonarqube是一款代碼分析的工具,可以對(duì)通過(guò)soanrScanner掃描后的數(shù)據(jù)傳遞給sonarqube進(jìn)行分析,本文為大家整理了Python獲取sonarqube數(shù)據(jù)的方法,需要的可以參考下
    2023-05-05
  • Django 視圖層(view)的使用

    Django 視圖層(view)的使用

    這篇文章主要介紹了Django 視圖層(view)的使用,詳細(xì)的介紹了什么是視圖層以及案例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-11-11
  • pandas中Series的使用方式

    pandas中Series的使用方式

    這篇文章主要介紹了pandas中Series的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 將FileStorage對(duì)象高效轉(zhuǎn)換為NumPy數(shù)組的兩種實(shí)現(xiàn)方案

    將FileStorage對(duì)象高效轉(zhuǎn)換為NumPy數(shù)組的兩種實(shí)現(xiàn)方案

    在Web開(kāi)發(fā)(如Flask應(yīng)用)中,處理用戶(hù)上傳的圖片文件時(shí),常會(huì)遇到FileStorage對(duì)象向numpy.ndarray的轉(zhuǎn)換需求,本文將提供兩種經(jīng)過(guò)驗(yàn)證的高效方法,并深入解析其技術(shù)細(xì)節(jié)與適用場(chǎng)景,需要的朋友可以參考下
    2025-03-03
  • Django實(shí)現(xiàn)全文檢索的方法(支持中文)

    Django實(shí)現(xiàn)全文檢索的方法(支持中文)

    這篇文章主要介紹了Django實(shí)現(xiàn)全文檢索的方法(支持中文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

巴东县| 华宁县| 巴里| 句容市| 徐闻县| 油尖旺区| 于都县| 民乐县| 高青县| 东阿县| 通许县| 昔阳县| 沙河市| 双柏县| 含山县| 弥勒县| 永川市| 呼和浩特市| 仙桃市| 崇仁县| 偏关县| 宣威市| 嵊泗县| 富宁县| 高唐县| 左权县| 诸暨市| 白玉县| 和田县| 武城县| 四子王旗| 达州市| 平乡县| 眉山市| 庆安县| 资溪县| 读书| 安化县| 新宾| 石柱| 海原县|