自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于 Python 的條件控制技巧

開(kāi)發(fā)
Python 提供了多種方式來(lái)實(shí)現(xiàn)條件控制,包括 if 語(yǔ)句、elif 語(yǔ)句和 else 語(yǔ)句等。掌握這些基礎(chǔ)可以幫助你寫(xiě)出更加靈活和智能的程序。

在編程中,條件控制是實(shí)現(xiàn)邏輯判斷的基礎(chǔ)。Python 提供了多種方式來(lái)實(shí)現(xiàn)條件控制,包括 if 語(yǔ)句、elif 語(yǔ)句和 else 語(yǔ)句等。掌握這些基礎(chǔ)可以幫助你寫(xiě)出更加靈活和智能的程序。

基本的條件控制語(yǔ)句

1. if 語(yǔ)句

用途:用于基于某個(gè)條件執(zhí)行一段代碼塊。

語(yǔ)法:

if condition:
    # 條件為真時(shí)執(zhí)行的代碼

示例:編寫(xiě)一個(gè)程序,判斷一個(gè)數(shù)字是否大于 10。

number = 15

if number > 10:
    print("這個(gè)數(shù)字大于 10")

輸出:

這個(gè)數(shù)字大于 10

解釋:這里 number > 10 是一個(gè)條件表達(dá)式。如果這個(gè)表達(dá)式的值為 True,那么打印語(yǔ)句就會(huì)被執(zhí)行。

技巧:在判斷之前可以先檢查變量是否已經(jīng)定義,避免運(yùn)行時(shí)錯(cuò)誤。

number = input("請(qǐng)輸入一個(gè)數(shù)字:")

if number.isdigit():  # 檢查輸入是否為數(shù)字
    number = int(number)
    if number > 10:
        print("這個(gè)數(shù)字大于 10")
else:
    print("請(qǐng)輸入有效的數(shù)字")

注意事項(xiàng):確保在使用條件語(yǔ)句時(shí)考慮所有可能的情況,避免遺漏。

2. if-else 語(yǔ)句

用途:用于在條件為真或假時(shí)分別執(zhí)行不同的代碼塊。

語(yǔ)法:

if condition:
    # 條件為真時(shí)執(zhí)行的代碼
else:
    # 條件為假時(shí)執(zhí)行的代碼

示例:判斷一個(gè)年份是否為閏年。

year = 2024

if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print(year, "是閏年")
else:
    print(year, "不是閏年")

輸出:

2024 是閏年

解釋:閏年的規(guī)則是能被 4 整除但不能被 100 整除,或者能被 400 整除。

技巧:可以將復(fù)雜的條件拆分成多個(gè)簡(jiǎn)單的條件組合。

is_divisible_by_4 = year % 4 == 0
is_not_divisible_by_100 = year % 100 != 0
is_divisible_by_400 = year % 400 == 0

if is_divisible_by_4 and is_not_divisible_by_100 or is_divisible_by_400:
    print(year, "是閏年")
else:
    print(year, "不是閏年")

注意事項(xiàng):在處理多個(gè)條件時(shí),注意運(yùn)算符的優(yōu)先級(jí)。

3. if-elif-else 語(yǔ)句

用途:用于根據(jù)多個(gè)條件選擇執(zhí)行不同的代碼塊。

語(yǔ)法:

if condition1:
    # 條件 1 為真時(shí)執(zhí)行的代碼
elif condition2:
    # 條件 2 為真時(shí)執(zhí)行的代碼
else:
    # 其他情況執(zhí)行的代碼

示例:根據(jù)成績(jī)等級(jí)輸出評(píng)語(yǔ)。

score = 85

if score >= 90:
    print("優(yōu)秀")
elif score >= 70:
    print("良好")
else:
    print("加油")

輸出:

良好

解釋:首先檢查 score >= 90,如果為真,則打印“優(yōu)秀”。否則,再檢查 score >= 70,如果為真,則打印“良好”。否則,打印“加油”。

技巧:可以根據(jù)實(shí)際情況添加更多的 elif 分支。

if score >= 90:
    print("優(yōu)秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("合格")
elif score >= 60:
    print("及格")
else:
    print("不及格")

注意事項(xiàng):在編寫(xiě)多個(gè)條件分支時(shí),注意順序的重要性,確保每個(gè)條件都能正確地被評(píng)估。

進(jìn)階的條件控制技術(shù)

1. 嵌套 if 語(yǔ)句

用途:在一個(gè) if 語(yǔ)句內(nèi)部再包含另一個(gè) if 語(yǔ)句,實(shí)現(xiàn)更復(fù)雜的邏輯判斷。

語(yǔ)法:

if outer_condition:
    if inner_condition:
        # 條件為真時(shí)執(zhí)行的代碼
    else:
        # 內(nèi)部條件為假時(shí)執(zhí)行的代碼
else:
    # 外部條件為假時(shí)執(zhí)行的代碼

示例:判斷一個(gè)用戶是否成年以及是否有駕駛資格。

age = 20
has_driving_license = True

if age >= 18:
    if has_driving_license:
        print("你可以開(kāi)車(chē)")
    else:
        print("你需要考取駕照")
else:
    print("你還未成年")

輸出:

你可以開(kāi)車(chē)

解釋:首先檢查年齡是否大于等于 18 歲,如果為真,則進(jìn)一步檢查是否有駕駛執(zhí)照。否則,打印“你還未成年”。

技巧:嵌套 if 語(yǔ)句可以用來(lái)處理多個(gè)層次的邏輯關(guān)系。

if age >= 18:
    if has_driving_license:
        print("你可以開(kāi)車(chē)")
    elif age >= 16:
        print("你可以申請(qǐng)駕照")
    else:
        print("你需要等到 16 歲才能申請(qǐng)駕照")
else:
    print("你還未成年")

注意事項(xiàng):嵌套層數(shù)過(guò)多可能會(huì)導(dǎo)致代碼難以閱讀和維護(hù),盡量保持簡(jiǎn)潔。

2. 使用邏輯運(yùn)算符

用途:通過(guò)邏輯運(yùn)算符(如 and、or 和 not)來(lái)組合多個(gè)條件,實(shí)現(xiàn)更復(fù)雜的邏輯判斷。

示例:判斷用戶是否滿足特定條件。

age = 25
is_student = False

if age >= 18 and not is_student:
    print("你可以申請(qǐng)信用卡")
else:
    print("你不滿足條件")

輸出:

你可以申請(qǐng)信用卡

解釋:這里使用了 and 運(yùn)算符和 not 運(yùn)算符。只有當(dāng)年齡大于等于 18 歲并且不是學(xué)生時(shí),才會(huì)打印“你可以申請(qǐng)信用卡”。

技巧:合理使用邏輯運(yùn)算符可以使條件判斷更加簡(jiǎn)潔明了。

if age >= 18 and (not is_student or income >= 20000):
    print("你可以申請(qǐng)信用卡")
else:
    print("你不滿足條件")

注意事項(xiàng):在使用邏輯運(yùn)算符時(shí),要注意運(yùn)算符的優(yōu)先級(jí),必要時(shí)使用括號(hào)來(lái)明確優(yōu)先級(jí)。

3. 使用條件表達(dá)式

用途:條件表達(dá)式是一種簡(jiǎn)化形式的 if-else 語(yǔ)句,可以在一行內(nèi)實(shí)現(xiàn)條件判斷。

語(yǔ)法:

value = some_value if condition else another_value

示例:根據(jù)年齡返回相應(yīng)的評(píng)價(jià)。

age = 25

result = "成年人" if age >= 18 else "未成年人"
print(result)

輸出:

成年人

解釋:這里使用了條件表達(dá)式 age >= 18,如果條件為真,則 result 被賦值為 "成年人",否則賦值為 "未成年人"。

技巧:條件表達(dá)式適用于簡(jiǎn)單的條件判斷,可以使代碼更加簡(jiǎn)潔。

score = 85
grade = "優(yōu)秀" if score >= 90 else ("良好" if score >= 70 else "加油")
print(grade)

注意事項(xiàng):條件表達(dá)式雖然簡(jiǎn)潔,但嵌套過(guò)多會(huì)降低代碼的可讀性,要適度使用。

4. 使用列表推導(dǎo)式和條件表達(dá)式

用途:通過(guò)列表推導(dǎo)式結(jié)合條件表達(dá)式來(lái)簡(jiǎn)化循環(huán)和條件判斷。

語(yǔ)法:

result = [expression for item in iterable if condition]

示例:找出一個(gè)列表中所有偶數(shù)的平方。

numbers = [1, 2, 3, 4, 5, 6]

squares = [num ** 2 for num in numbers if num % 2 == 0]
print(squares)

輸出:

[4, 16, 36]

解釋:這里使用了列表推導(dǎo)式 [num ** 2 for num in numbers if num % 2 == 0],只有當(dāng) num 是偶數(shù)時(shí),才會(huì)計(jì)算其平方并加入到結(jié)果列表中。

技巧:列表推導(dǎo)式結(jié)合條件表達(dá)式可以使代碼更加簡(jiǎn)潔。

even_squares = [num ** 2 if num % 2 == 0 else num for num in numbers]
print(even_squares)

注意事項(xiàng):列表推導(dǎo)式雖然簡(jiǎn)潔,但嵌套過(guò)多會(huì)降低代碼的可讀性,要適度使用。

5.實(shí)戰(zhàn)案例:成績(jī)管理系統(tǒng)

假設(shè)我們已經(jīng)實(shí)現(xiàn)了基本的成績(jī)管理系統(tǒng),現(xiàn)在將進(jìn)一步完善系統(tǒng)功能,使其能夠處理更多的場(chǎng)景。

需求: 1. 輸入學(xué)生的姓名、年齡和分?jǐn)?shù)。 2. 根據(jù)分?jǐn)?shù)輸出相應(yīng)的評(píng)價(jià)(優(yōu)秀、良好、合格、及格、不及格)。 3. 記錄學(xué)生的基本信息,并保存到文件中。 4. 提供查詢功能,允許用戶查詢學(xué)生的成績(jī)和評(píng)價(jià)。

步驟:

(1) 輸入學(xué)生信息:

獲取學(xué)生的姓名、年齡和分?jǐn)?shù)。

檢查輸入的有效性。

import json

def get_student_info():
    name = input("請(qǐng)輸入學(xué)生姓名:")
    age = input("請(qǐng)輸入學(xué)生年齡:")
    score = input("請(qǐng)輸入學(xué)生成績(jī):")

    if not name.strip() or not age.isdigit() or not score.isdigit():
        print("輸入有誤,請(qǐng)重新輸入!")
        return None

    age = int(age)
    score = int(score)

    return {"name": name, "age": age, "score": score}

(2) 根據(jù)分?jǐn)?shù)輸出評(píng)價(jià):

判斷分?jǐn)?shù)范圍并輸出相應(yīng)的評(píng)價(jià)。

def evaluate_score(score):
    if score >= 90:
        return "優(yōu)秀"
    elif score >= 80:
        return "良好"
    elif score >= 70:
        return "合格"
    elif score >= 60:
        return "及格"
    else:

(3) 記錄學(xué)生信息:

將學(xué)生信息保存到 JSON 文件中。

def save_student_info(student_info):
    with open("students.json", "a") as file:
        json.dump(student_info, file)
        file.write("\n")

(4) 查詢學(xué)生信息:

讀取文件中的學(xué)生信息,并根據(jù)姓名查詢成績(jī)和評(píng)價(jià)。

def query_student_info(name):
    with open("students.json", "r") as file:
        students = [json.loads(line) for line in file]

    for student in students:
        if student["name"] == name:
            evaluation = evaluate_score(student["score"])
            print(f"{name} 的成績(jī)?yōu)?{evaluation}")
            return

    print(f"沒(méi)有找到 {name} 的信息")

(5) 主程序:

  • 輸入學(xué)生信息。
  • 輸出評(píng)價(jià)。
  • 保存學(xué)生信息。
  • 查詢學(xué)生信息。
def main():
    while True:
        print("請(qǐng)選擇操作:")
        print("1. 添加學(xué)生信息")
        print("2. 查詢學(xué)生信息")
        print("3. 退出")
        choice = input("請(qǐng)輸入選項(xiàng):")

        if choice == "1":
            student_info = get_student_info()
            if student_info:
                evaluation = evaluate_score(student_info["score"])
                print(f"{student_info['name']} 的成績(jī)?yōu)?{evaluation}")
                save_student_info(student_info)
        elif choice == "2":
            name = input("請(qǐng)輸入學(xué)生姓名:")
            query_student_info(name)
        elif choice == "3":
            break
        else:
            print("無(wú)效的選項(xiàng),請(qǐng)重新輸入!")

if __name__ == "__main__":
    main()

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

請(qǐng)選擇操作:
**1.** 添加學(xué)生信息
**2.** 查詢學(xué)生信息
**3.** 退出
請(qǐng)輸入選項(xiàng):1
請(qǐng)輸入學(xué)生姓名:張三
請(qǐng)輸入學(xué)生年齡:20
請(qǐng)輸入學(xué)生成績(jī):85
張三 的成績(jī)?yōu)?良好
請(qǐng)選擇操作:
**1.** 添加學(xué)生信息
**2.** 查詢學(xué)生信息
**3.** 退出
請(qǐng)輸入選項(xiàng):2
請(qǐng)輸入學(xué)生姓名:張三
張三 的成績(jī)?yōu)?良好
請(qǐng)選擇操作:
**1.** 添加學(xué)生信息
**2.** 查詢學(xué)生信息
**3.** 退出
請(qǐng)輸入選項(xiàng):3

分析:

  • 輸入檢查:在獲取學(xué)生信息時(shí),檢查了姓名、年齡和分?jǐn)?shù)的有效性,避免了無(wú)效輸入。
  • 條件判斷:使用了嵌套的 if-elif-else 語(yǔ)句來(lái)判斷分?jǐn)?shù)范圍,并輸出相應(yīng)的評(píng)價(jià)。
  • 數(shù)據(jù)保存:將學(xué)生信息以 JSON 格式保存到文件中,方便后續(xù)查看和管理。
  • 查詢功能:通過(guò)讀取文件中的數(shù)據(jù),并根據(jù)姓名查詢學(xué)生的成績(jī)和評(píng)價(jià)。

技巧和注意事項(xiàng):

  • 在輸入檢查時(shí),使用了字符串和整數(shù)類型的轉(zhuǎn)換函數(shù),確保數(shù)據(jù)類型的一致性。
  • 條件判斷時(shí),合理安排了條件的順序,使得邏輯更加清晰。
  • 數(shù)據(jù)保存時(shí),使用了文件操作函數(shù),確保數(shù)據(jù)的安全性和持久性。
  • 查詢功能時(shí),使用了列表推導(dǎo)式來(lái)讀取文件中的數(shù)據(jù),并通過(guò)循環(huán)查找指定的學(xué)生信息。
責(zé)任編輯:趙寧寧 來(lái)源: 手把手PythonAI編程
相關(guān)推薦

2024-09-23 10:30:00

Python編程條件控制

2024-05-28 14:45:00

2010-03-18 16:37:13

Python 程序流程

2011-09-20 15:19:15

Python

2020-06-10 08:37:21

JavaScript重構(gòu)技巧

2023-10-31 08:15:51

2017-03-13 16:48:05

Git技巧

2023-07-25 11:22:31

2019-06-27 10:35:40

JavaScript條件式匹配條件

2022-11-04 15:56:41

2011-04-07 16:46:09

Solaris

2023-02-02 14:06:00

history命令技巧

2024-06-03 09:00:00

Python代碼

2022-07-04 08:51:43

條件語(yǔ)句JavaScript

2010-05-20 16:49:18

2024-12-06 17:13:07

2020-11-16 11:56:57

機(jī)器學(xué)習(xí)技術(shù)工具

2022-04-02 09:56:44

pipPython

2011-07-11 13:43:45

Windows控制臺(tái)

2018-03-02 08:22:38

云端維護(hù)控制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)