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

Python流程控制之條件循環(huán)與異常處理實(shí)戰(zhàn)指南

 更新時(shí)間:2026年01月19日 10:54:12   作者:流?  
在Python編程語(yǔ)言中,流程控制語(yǔ)句是構(gòu)建程序邏輯的基礎(chǔ)構(gòu)件之一,它們決定了程序中語(yǔ)句的執(zhí)行順序,允許我們創(chuàng)建更加復(fù)雜和動(dòng)態(tài)的代碼結(jié)構(gòu),這篇文章主要介紹了Python流程控制之條件循環(huán)與異常處理實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下

前言

在編程中,流程控制是決定程序執(zhí)行路徑的核心機(jī)制。Python 提供了清晰、簡(jiǎn)潔的語(yǔ)法來(lái)實(shí)現(xiàn)條件判斷、循環(huán)和異常處理,使代碼邏輯更靈活、健壯。

1. 條件判斷語(yǔ)句

條件判斷用于根據(jù)布爾值(True/False)決定是否執(zhí)行某段代碼。

1.1if語(yǔ)句

最簡(jiǎn)單的條件判斷形式:當(dāng)條件為 True 時(shí),執(zhí)行代碼塊。

age = 18
if age >= 18:
    print("你已成年,可以投票!")

?? 注意:Python 使用縮進(jìn)(通常是 4 個(gè)空格)表示代碼塊,而非大括號(hào) {}。

1.2 布爾值(Boolean)

條件判斷的核心是布爾表達(dá)式,其結(jié)果為 True 或 False。

常見(jiàn)返回布爾值的操作:

print(5 > 3)        # True
print("a" == "A")   # False(區(qū)分大小寫(xiě))
print(10 != 20)     # True

哪些值會(huì)被視為False?

  • False
  • None
  • 數(shù)字 0、0.0
  • 空字符串 ""
  • 空列表 []、空字典 {}、空元組 ()

其余所有值均為 True。

if []: 
    print("不會(huì)執(zhí)行")
if "Hello":
    print("非空字符串為 True")  # 會(huì)執(zhí)行

1.3if + else語(yǔ)句

提供“二選一”邏輯:條件成立執(zhí)行 if 塊,否則執(zhí)行 else 塊。

score = 85
if score >= 60:
    print("及格!")
else:
    print("不及格,請(qǐng)努力!")

1.4if + elif + else語(yǔ)句

用于多分支判斷。elif 是 “else if” 的縮寫(xiě)。

a = int(input("請(qǐng)輸入您的年齡:"))
if a < 10:
    print("您是兒童")
elif a < 16:
    print("您是少年")
else:
    print("您比少年大")

?? 執(zhí)行規(guī)則:從上到下依次判斷,一旦某個(gè)條件為 True,后續(xù) elif/else 將被跳過(guò)。

1.5 多個(gè)elif語(yǔ)句

Python 允許任意數(shù)量的 elif,適用于復(fù)雜分級(jí)場(chǎng)景。當(dāng)需要對(duì)多個(gè)條件進(jìn)行判斷時(shí),可以插入多個(gè)elif語(yǔ)句。

a = int(input("請(qǐng)輸入您的年齡:"))
if a < 10:
    print("您是兒童")
elif a < 16:
    print("您是少年")
elif a < 30:
    print("您是青年")
elif a < 59:
    print("您是中年人")
else:
    print("您是老年人")

代碼執(zhí)行結(jié)果(當(dāng)用戶輸入79):

請(qǐng)輸入您的年齡:79
您是老年人

1.6 條件判斷語(yǔ)句的嵌套

條件判斷語(yǔ)句中的代碼塊也可以包含一個(gè)或多個(gè)條件判斷語(yǔ)句。在 if 塊內(nèi)部再寫(xiě) if,實(shí)現(xiàn)更精細(xì)的邏輯控制。

a = int(input("請(qǐng)輸入您的年齡:"))
if a < 10:
    if a < 1:        
        print("您是嬰兒")
    else:
        print("您是兒童")
elif a < 16:
    print("您是少年")
else:
    print("您比少年大")

?? 建議:嵌套不宜過(guò)深(一般不超過(guò) 3 層),否則影響可讀性。

1.7 多個(gè)條件判斷語(yǔ)句

使用邏輯運(yùn)算符組合多個(gè)條件:

運(yùn)算符含義示例
and且(都為真才真)age >= 18 and score >= 60
or或(有一個(gè)為真即真)weather == "sunny" or temp > 30
not非(取反)not is_raining
username = "admin"
password = "123456"

if username == "admin" and password == "123456":
    print("登錄成功!")
else:
    print("用戶名或密碼錯(cuò)誤")

1.8if + else的復(fù)合寫(xiě)法(三元表達(dá)式)

Python 支持一行寫(xiě)法,適用于簡(jiǎn)單賦值或返回。

語(yǔ)法:

表達(dá)式1 if 條件判斷語(yǔ)句 else 表達(dá)式2

示例:

age = 20
status = "成年" if age >= 18 else "未成年"
print(status)  # 成年

# 也可用于 print
print("及格" if score >= 60 else "不及格")

? 優(yōu)點(diǎn):簡(jiǎn)潔;? 缺點(diǎn):復(fù)雜邏輯不適用,可讀性下降。

2. 循環(huán)語(yǔ)句

循環(huán)用于重復(fù)執(zhí)行某段代碼,直到滿足特定條件。

2.1for循環(huán)

用于遍歷可迭代對(duì)象(如字符串、列表、字典、range 等)。

基本用法:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

range()函數(shù)

生成數(shù)字序列,常用于控制循環(huán)次數(shù)。

調(diào)用方式說(shuō)明示例
range(stop)從 0 到 stop-1range(3) → 0,1,2
range(start, stop)從 start 到 stop-1range(2, 5) → 2,3,4
range(start, stop, step)指定步長(zhǎng)range(0, 10, 2) → 0,2,4,6,8
for i in range(5):
    print(f"第 {i+1} 次循環(huán)")

for循環(huán)的復(fù)合寫(xiě)法(列表推導(dǎo)式)

一行生成新列表,本質(zhì)是 for 的簡(jiǎn)化。

# 普通寫(xiě)法
squares = []
for x in range(5):
    squares.append(x ** 2)

# 列表推導(dǎo)式(推薦)
squares = [x ** 2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]

?? 列表推導(dǎo)式還可加條件:

evens = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]

2.2while循環(huán)

只要條件為 True,就持續(xù)循環(huán)。

count = 0
while count < 3:
    print(f"計(jì)數(shù):{count}")
    count += 1  # 必須有退出機(jī)制,否則死循環(huán)!

?? 警惕死循環(huán):確保循環(huán)體內(nèi)有改變條件的語(yǔ)句。

2.3 嵌套循環(huán)

在一個(gè)循環(huán)內(nèi)部再寫(xiě)一個(gè)循環(huán),常用于處理二維結(jié)構(gòu)。

import time

for i in range(60):  
    for j in range(60):  
        time.sleep(1)  
        print(f'當(dāng)前時(shí)間為 {i} 分 {j} 秒')
    print(f"{i} 分鐘結(jié)束")

運(yùn)行結(jié)果:

2.4break和continue語(yǔ)句

  • break立即退出整個(gè)循環(huán)
  • continue跳過(guò)本次循環(huán)剩余代碼,進(jìn)入下一次循環(huán)

示例:

# break:找到目標(biāo)就停止
for num in [1, 3, 5, 7, 9]:
    if num == 5:
        print("找到 5,退出循環(huán)")
        break
    print(num)

# continue:跳過(guò)偶數(shù)
for i in range(1, 6):
    if i % 2 == 0:
        continue
    print(i)  # 輸出:1, 3, 5

break 和 continue 在 for 和 while 中均可使用。

3. 異常處理語(yǔ)句

程序運(yùn)行時(shí)可能遇到錯(cuò)誤(如除零、文件不存在)。異常處理機(jī)制可捕獲錯(cuò)誤并優(yōu)雅處理,避免程序崩潰。

3.1 異常處理語(yǔ)句的使用

使用 try...except 結(jié)構(gòu):

try:
    n = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
    print(n)
except:
    print("您輸入的不是一個(gè)整數(shù)")
a = 3
print("a的內(nèi)容為:", a)

完整結(jié)構(gòu):

try:
    # 可能出錯(cuò)的代碼
except ExceptionType1:
    # 處理異常1
except ExceptionType2:
    # 處理異常2
else:
    # 無(wú)異常時(shí)執(zhí)行
finally:
    # 無(wú)論是否有異常,都會(huì)執(zhí)行(常用于清理資源)

3.2 異常捕獲

捕獲多種異常:

try:
    num = int(input("請(qǐng)輸入一個(gè)數(shù)字:"))
    result = 100 / num
except ValueError:
    print("輸入的不是有效數(shù)字!")
except ZeroDivisionError:
    print("不能除以零!")
except Exception as e:
    print(f"發(fā)生了未知錯(cuò)誤:{e}")
else:
    print(f"結(jié)果是:{result}")
finally:
    print("程序結(jié)束。")

常見(jiàn)內(nèi)置異常類(lèi)型:

異常觸發(fā)場(chǎng)景
ValueError類(lèi)型轉(zhuǎn)換失?。ㄈ?nbsp;int("abc")
ZeroDivisionError除零錯(cuò)誤
FileNotFoundError文件未找到
IndexError列表索引越界
KeyError字典鍵不存在

最佳實(shí)踐

  • 盡量捕獲具體異常,而非籠統(tǒng)的 Exception
  • 在 except 中記錄日志或提示用戶,不要靜默忽略錯(cuò)誤

項(xiàng)目案例:實(shí)現(xiàn)超市收銀系統(tǒng)

項(xiàng)目描述:

某超市的白菜標(biāo)價(jià)為2.5元/千克,根據(jù)頗客購(gòu)買(mǎi)量的不同有不同的折扣。

  • 如果顧客的購(gòu)買(mǎi)量小于2千克,則 打9折;
  • 如果顧客的購(gòu)買(mǎi)量為2~4(不包括4)千克,則打8折;
  • 如果顧客的購(gòu)買(mǎi)量為4~10(不包括10)千克,則打6折;
  • 如果顧客的購(gòu)買(mǎi)量大于等于10千克,則打4折。

項(xiàng)目任務(wù):

現(xiàn)需要設(shè)計(jì)一個(gè)代碼程序,用于實(shí)現(xiàn)在營(yíng)業(yè)員輸入白菜重量之后自動(dòng)計(jì)算出顧客需要支付的金額。

項(xiàng)目實(shí)現(xiàn)代碼:

while True:
    try:
        weight = float(input('請(qǐng)輸入白菜的重量:'))
        break
    except:
        print("輸入錯(cuò)誤,重新輸入,", end='')
if weight < 2.0:
    print("請(qǐng)付款:", weight*2.5*0.9, '元')
elif weight < 4.0:
    print("請(qǐng)付款:", weight*2.5*0.8, '元')
elif weight < 10.0:
    print("請(qǐng)付款:", weight*2.5*0.6, '元')
else:
    print("請(qǐng)付款:", weight*2.5*0.4, '元')

項(xiàng)目實(shí)現(xiàn)結(jié)果:

以上代碼只能實(shí)現(xiàn)計(jì)算一位顧客需要支付的金額,每成功計(jì)算出一位顧客需要支付的金額后,程序會(huì)自動(dòng)結(jié)束。

基于此我們還可以將代碼進(jìn)行改進(jìn),以實(shí)現(xiàn)在計(jì)算完一位頤客需要支付的金額后會(huì)繼快計(jì)算下一位顧客 需要支付的金額。改進(jìn)后的代碼如下:

while True:
    try:
        weight = float(input('請(qǐng)輸入白菜的重量:'))
        if weight < 2.0:
            print("請(qǐng)付款:", weight*2.5*0.9, '元')
        elif weight < 4.0:
            print("請(qǐng)付款:", weight*2.5*0.8, '元')
        elif weight < 10.0:
            print("請(qǐng)付款:", weight*2.5*0.6, '元')2
        else:
            print("請(qǐng)付款:", weight*2.5*0.4, '元')
    except:
        print("輸入錯(cuò)誤,重新輸入,", end='')

改進(jìn)后的項(xiàng)目實(shí)現(xiàn)結(jié)果:

??改進(jìn)后的代碼程序更滿足實(shí)際的使用需求,這是因?yàn)楦倪M(jìn)后的代碼將條件判斷語(yǔ)句加入了while循環(huán)語(yǔ)句的try代碼塊中,因此代碼會(huì)一直循環(huán)下去

總結(jié) 

到此這篇關(guān)于Python流程控制之條件循環(huán)與異常處理的文章就介紹到這了,更多相關(guān)Python條件循環(huán)與異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

新河县| 稻城县| 汤原县| 吉木乃县| 长丰县| 兴海县| 綦江县| 渝中区| 莱州市| 拜城县| 西平县| 沈阳市| 安康市| 禹城市| 墨玉县| 从化市| 长治市| 泰安市| 泾川县| 遵化市| 永泰县| 乌拉特前旗| 中山市| 合阳县| 新和县| 紫金县| 五常市| 大洼县| 穆棱市| 剑阁县| 永兴县| 白沙| 交城县| 刚察县| 府谷县| 揭阳市| 永济市| 平阴县| 沧州市| 阿拉尔市| 克拉玛依市|