Python條件分支與循環

????????大家好,當涉及到編寫高效和靈活的程序時,條件分支和循環是 Python 中至關重要的概念。它們允許我們根據不同的條件執行不同的代碼塊,或者重復執行一組語句。條件分支和循環是測試開發工程師在日常工作中經常使用的工具,無論是編寫自動化測試腳本、處理測試數據還是構建測試框架,都離不開這些關鍵概念。

????????在本文中,我們將探索 Python 中條件分支和循環的基本知識和用法。我們將了解條件語句如何根據條件的真假來選擇性地執行代碼。我們還將深入研究不同類型的循環結構,包括?for?循環和?while?循環,以及它們的靈活性和適用場景。

一、條件分支

????????Python 的條件分支是一種編程結構,用于根據給定的條件選擇性地執行不同的代碼塊。條件分支語句允許程序根據條件的真假來決定執行哪些代碼。

????????Python 中的條件分支主要使用?ifelif?和?else?語句來實現。條件分支允許根據給定的條件選擇性地執行不同的代碼塊。下面我將詳細介紹 Python 的條件分支語句。

1、if語句

if?語句用于執行一個代碼塊,當給定條件為真時執行。它的基本語法如下:

if 條件:# 執行的代碼塊

如果條件為真,則執行代碼塊;否則,跳過該代碼塊。

以下是一個使用?if?語句的示例:

x = 10
if x > 0:print("x 是正數")

在這個例子中,如果?x?的值大于 0,則會執行?print("x 是正數")?這行代碼。

2、if-else?語句

if-else?語句用于根據條件的真假執行不同的代碼塊。它的基本語法如下:

if 條件:# 條件為真時執行的代碼塊
else:# 條件為假時執行的代碼塊

如果條件為真,則執行第一個代碼塊;否則,執行?else?后面的代碼塊。

以下是一個使用?if-else?語句的示例:

x = 10
if x > 0:print("x 是正數")
else:print("x 是非正數")

????????在這個例子中,如果?x?的值大于 0,則會執行?print("x 是正數")?這行代碼;否則,執行?print("x 是非正數")

3、if-elif-else?語句

if-elif-else?語句用于在多個條件之間進行選擇。它的基本語法如下:

if 條件1:# 條件1為真時執行的代碼塊
elif 條件2:# 條件2為真時執行的代碼塊
elif 條件3:# 條件3為真時執行的代碼塊
...
else:# 所有條件均為假時執行的代碼塊

????????根據條件的真假,依次檢查每個條件,并執行第一個滿足條件的代碼塊。如果所有條件均為假,則執行?else?后面的代碼塊。

以下是一個使用?if-elif-else?語句的示例:

x = 10
if x > 0:print("x 是正數")
elif x < 0:print("x 是負數")
else:print("x 是零")

在這個例子中,根據?x?的值,將會執行相應的代碼塊。

二、循環

????????Python 中的循環是一種重復執行特定代碼塊的控制結構。循環使得我們能夠有效地處理重復性任務,遍歷數據集合或根據條件執行特定操作。

Python 提供了兩種主要類型的循環:while?循環和?for?循環。

1、for循環

????????在 Python 中,for?循環是一種用于遍歷序列(如列表、字符串、元組等)或其他可迭代對象的循環結構。它允許我們逐個訪問序列中的元素,并針對每個元素執行特定的代碼塊。下面我將詳細介紹 Python 中的?for?循環。

for?循環的基本語法如下:

for 變量 in 序列:# 執行的代碼塊

????????在每次迭代中,變量會被賦值為序列中的下一個元素,然后執行代碼塊,直到遍歷完所有元素為止。

以下是一個使用?for?循環的示例,遍歷并打印列表中的元素:

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

????????在這個例子中,for?循環遍歷了列表?fruits?中的每個元素。在每次迭代中,當前元素會被賦值給變量?fruit,然后執行代碼塊,打印出水果的名稱。

除了列表,for?循環還可以遍歷其他類型的序列,如字符串、元組等。例如:

string = "Hello"
for char in string:print(char)

在這個例子中,for?循環遍歷了字符串 "Hello" 中的每個字符,并打印出字符。

此外,for?循環還可以與內置函數?range()?結合使用,用于生成一系列數字。例如:

for i in range(5):print(i)

????????在這個例子中,range(5)?生成了一個從 0 到 4 的數字序列。for?循環遍歷該序列中的每個數字,并打印出數字。

????????在?for?循環中,我們還可以使用?break?語句來提前結束循環,以及?continue?語句來跳過當前迭代,繼續下一次迭代。這些控制流程語句可以幫助我們對循環進行更精確的控制。

2、breakcontinue?

break?語句

? ? break?語句用于立即終止當前所在的循環,不再執行循環中剩余的代碼,并跳出循環體,繼續執行循環后面的代碼。它常用于在滿足某個條件時提前結束循環。以下是?break?語句的使用示例:

for i in range(5):if i == 3:breakprint(i)

????????在這個例子中,for?循環遍歷了數字序列?range(5)?中的每個數字。當?i?的值等于 3 時,執行?break?語句,終止循環。因此,只會打印出數字 0、1、2。

continue?語句

????continue?語句用于跳過當前迭代中剩余的代碼,直接進入下一次迭代。在遇到?continue?語句時,循環會立即跳到下一次迭代,而不再執行本次迭代剩余的代碼。以下是?continue?語句的使用示例:

for i in range(5):if i == 2:continueprint(i)

????????在這個例子中,for?循環遍歷了數字序列?range(5)?中的每個數字。當?i?的值等于 2 時,執行?continue?語句,跳過本次迭代中的剩余代碼。因此,不會打印出數字 2,而是繼續執行下一次迭代,打印出其他數字。

? ? break?和?continue?語句通常與條件判斷結合使用,以根據特定的條件來決定是否終止循環或跳過當前迭代。它們為我們提供了更靈活的控制循環流程的方式,使我們能夠根據需要對循環進行精確的控制。

????????需要注意的是,break?和?continue?語句在嵌套循環中的行為可能會受到影響。break?語句會結束當前所在的最內層循環,并開始執行下一條語句。而?continue?語句會跳過當前所在的最內層循環的剩余代碼,繼續下一次最內層循環的迭代。

????????總結來說,break?語句用于提前結束循環,而?continue?語句用于跳過當前迭代,繼續下一次迭代。這兩個語句為我們提供了更多的控制循環執行流程的能力,使我們能夠根據具體需求對循環進行精確的控制。

3、while循環

????????在 Python 中,while?循環是一種根據條件判斷來重復執行代碼塊的循環結構。只要給定的條件為真(True),循環就會一直執行,直到條件變為假(False)。下面我將詳細介紹 Python 中的?while?循環。

while?循環的基本語法如下:

while 條件:# 執行的代碼塊

????????在每次迭代中,首先會對條件進行判斷。如果條件為真,則執行代碼塊;然后再次對條件進行判斷,以此類推,直到條件為假,循環結束。

以下是一個使用?while?循環的示例,打印數字 0 到 4:

count = 0
while count < 5:print(count)count += 1

????????在這個例子中,count?的初始值為 0。循環首先檢查條件?count < 5,由于條件為真,執行代碼塊,打印出?count?的值。然后?count?的值遞增,再次進行條件檢查,直到?count?的值達到 5 時,循環結束。

需要注意的是,如果條件一開始就為假,那么循環內的代碼塊將不會執行,循環直接跳過。

????????在?while?循環中,我們可以使用?break?語句來提前結束循環,以及?continue?語句來跳過當前迭代,繼續下一次迭代,與?for?循環中的用法相似。

以下是一個使用?while?循環和?break?語句的示例,尋找列表中的特定元素:

fruits = ["apple", "banana", "orange", "pear"]
index = 0
while index < len(fruits):if fruits[index] == "orange":print("找到了橙子!")breakindex += 1
else:print("未找到橙子!")

????????在這個例子中,循環遍歷列表?fruits?中的元素,當找到值為 "orange" 的元素時,執行?break?語句,提前結束循環。如果循環正常結束而沒有執行?break,則執行?else?語句塊,打印出 "未找到橙子!"。

????????當使用?while?循環結合?continue?語句時,可以通過跳過某些迭代來控制循環的執行流程。以下是一個使用?while?循環和?continue?語句的示例,計算列表中的奇數之和:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sum_odd = 0
index = 0while index < len(numbers):if numbers[index] % 2 == 0:index += 1continuesum_odd += numbers[index]index += 1print("奇數之和:", sum_odd)

????????在這個例子中,while?循環遍歷列表?numbers?中的元素。如果當前元素是偶數,即?numbers[index] % 2 == 0?條件為真,那么執行?continue?語句,跳過當前迭代,繼續下一次迭代。這樣可以確保只有奇數被累加到?sum_odd?變量中。在每次迭代中,如果當前元素是奇數,那么將其加到?sum_odd?中。然后?index?遞增,繼續下一次迭代。最終,打印出累加得到的奇數之和。

????????在這個例子中,continue?語句幫助我們跳過偶數,只對奇數執行特定的操作。通過使用?continue,我們可以更精確地控制循環的執行流程,以滿足特定的需求。

????while?循環也需要謹慎使用,因為如果條件一直為真,循環可能會陷入無限循環的狀態,導致程序無法繼續執行。因此,我們需要確保條件在循環執行過程中最終會變為假,或者使用?break?語句來提前結束循環。

????????總結來說,Python 的?while?循環允許我們根據條件判斷重復執行代碼塊,直到條件為假。它是處理重復性任務和根據條件執行特定操作的重要工具之一。同時,我們可以使用?break?和?continue?語句來對循環進行更精確的控制。

4、循環嵌套

while與for嵌套

當需要在一個循環內嵌套另一個循環時,我們可以將?for?循環和?while?循環結合使用。

以下是一個同時包含?for?循環和?while?循環的例子,用于輸出九九乘法表:

for i in range(1, 10):j = 1while j <= i:print(f"{j} × {i} = {j * i}", end="\t")j += 1print()

????????在這個例子中,外層的?for?循環用于控制被乘數?i,取值范圍是 1 到 9。對于每個?i?的值,我們使用內層的?while?循環來生成乘法表的一行。內層的?while?循環中,初始時將乘數?j?設為 1。在每次循環中,我們打印出當前的乘法表項,并將?j?遞增,直到?j?的值大于等于?i,然后換行。

????????通過將?for?循環和?while?循環結合使用,我們可以生成完整的九九乘法表。這個例子展示了如何在一個循環內嵌套另一個循環,并且同時使用了?for?循環和?while?循環,以實現特定的功能。這種循環嵌套的結構可以在需要處理多維數據或復雜的迭代邏輯時非常有用。

while與while嵌套

以下是一個使用?while?循環嵌套?while?循環的例子,用于打印一個矩形圖案:

rows = 5
columns = 8
i = 0while i < rows:j = 0while j < columns:print("*", end=" ")j += 1print()i += 1

????????在這個例子中,外層的?while?循環用于控制打印的行數,變量?i?從 0 開始,每次遞增 1,直到達到指定的行數?rows。在內層的?while?循環中,我們打印星號?*?字符,控制打印的列數。變量?j?從 0 開始,每次遞增 1,直到達到指定的列數?columns

運行此代碼將輸出如下的矩形圖案:

for與for嵌套

以下是一個使用?for?循環嵌套?for?循環的例子,用于輸出九九乘法表:

for i in range(1, 10):for j in range(1, 10):print(f"{j} × {i} = {j * i}", end="\t")print()

????????在這個例子中,外層的?for?循環用于控制被乘數?i,取值范圍是 1 到 9。對于每個?i?的值,內層的?for?循環用于控制乘數?j,也取值范圍是 1 到 9。在內層的?for?循環中,我們打印出當前的乘法表項,并使用制表符?\t?分隔每個項。

運行此代碼將輸出如下的九九乘法表:

5、使用循環的注意事項

在使用 Python 循環時,有幾個方面需要注意:

  • 循環條件:確保循環條件正確,并且能夠在循環執行過程中最終變為假。否則,循環可能會陷入無限循環的狀態,導致程序無法繼續執行。

  • 循環變量的更新:在循環體內,確保更新循環變量的值,以便在每次迭代中逐步改變條件,使循環能夠最終結束。

  • 循環控制語句的正確使用:了解并正確使用循環控制語句,如?break?和?continuebreak?用于提前結束循環,而?continue?用于跳過當前迭代,繼續下一次迭代。

  • 避免無限循環:確保循環的終止條件被滿足,避免無限循環。如果循環意外陷入無限循環,可以使用?Ctrl+C?組合鍵終止程序的執行。

  • 循環效率:在迭代大量數據或執行復雜操作的情況下,要考慮循環的效率。避免在循環內部執行過多的重復計算或頻繁的 I/O 操作,可以通過優化算法或緩存結果來提高循環效率。

  • 循環嵌套:當在一個循環內嵌套另一個循環時,要確保內層循環的執行條件和控制正確,避免出現邏輯錯誤或死循環。

  • 循環的可讀性和可維護性:編寫清晰、易讀的循環代碼,使用有意義的變量名和注釋來解釋循環的目的和邏輯。避免過長的循環體和復雜的嵌套結構,可以考慮將復雜的邏輯拆分成更小的函數或模塊。

  • 選擇合適的循環類型:Python 提供了多種循環類型,如?for?循環、while?循環和列表推導式等。根據具體的需求和情況選擇合適的循環類型,以及使用適當的迭代工具和技巧,可以簡化代碼并提高效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14324.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

光耦合器的特性和應用概述

光耦合器又稱光電耦合器&#xff0c;是現代電子學中必不可少的元件&#xff0c;確保隔離電路之間安全有效的信號傳輸。本文探討了光耦合器的特性及其多樣化應用&#xff0c;強調了它們在各種電子系統中的關鍵作用。 什么是光耦合器&#xff1f; 光耦合器是一種設計用于利用光傳…

Java 18新特性詳細介紹

Java作為一門廣泛使用的編程語言&#xff0c;一直在不斷地發展和更新。Java 18是Java的最新版本&#xff0c;它引入了許多新特性和改進&#xff0c;使得開發過程更加高效、安全和便捷。本文將詳細介紹Java 18的新特性&#xff0c;幫助開發者更好地了解和應用這些新功能。 JEP …

vue詳解(4)

1. v-model 原理 原理&#xff1a;v-model本質上是一個語法糖。例如應用在輸入框上&#xff0c;就是 value屬性 和 input事件 的合寫。作用&#xff1a;提供數據的雙向綁定。① 數據變&#xff0c;視圖跟著變 :value&#xff1b;② 視圖變&#xff0c;數據跟著變 input注意&am…

【MySQL數據庫】CRUD 增 刪 改 查 超詳解,有這一篇就夠了!

? ? &#x1f525;個人主頁&#xff1a; 中草藥 &#x1f525;專欄&#xff1a;【MySQL】探秘&#xff1a;數據庫世界的瑞士軍刀 目錄 ??一.CRUD &#x1f9ea;二.新增&#xff08;Create&#xff09; &#x1f9eb;1.基本操作 &#x1f9ec;2.使用SELECT插入 &#x…

長難句5.24

There is pressure for change from within the profession, but opponents of change among the regulators insist that keeping outsiders out of a law firm isolates lawyers from the pressure to make money rather than serve clients ethically. 在(律師)行業內部也有…

云計算歷史、業務驅動因素和術語 (Cloud Computing History, Business Drivers and Terminologies)

云計算的歷史與定義 (History and Definition of Cloud Computing) 歷史 (History) 云計算的概念化始于很久以前&#xff0c;早在1963年。麻省理工學院從美國國防高級研究計劃局獲得研究資金&#xff0c;用于開發一種“計算機可同時被兩人或更多人使用”的技術。在早期的云計算…

區塊鏈錢包如果丟失了私鑰或助記詞,資產還能恢復嗎?

如果你丟失了區塊鏈錢包的私鑰或助記詞&#xff08;通常是用于恢復錢包的短語或種子&#xff09;&#xff0c;那么你的資產在大多數情況下是無法恢復的。私鑰是訪問和控制你在區塊鏈上資產的唯一憑證&#xff0c;而助記詞&#xff08;如BIP39標準中的12、18、24個單詞的短語&am…

centos常見命令總結

一、【寫在前面】 注意到csdn在鼓勵作者創作centos常見命令相關的文章&#xff0c;借此機會水一篇博文。 centos作為上個版本國內最常用的開源操作系統&#xff0c;占有量非常恐怖&#xff0c;排個前三應該沒有任何疑問。但是我建議直接去學ubuntu&#xff0c;因為主流在用的…

【系統架構師】-案例篇(十五)SOA、微服務與數據庫

1、可復用構件應具備哪些屬性 可用性&#xff1a;構件必須易于理解和使用。 質量&#xff1a;構件及其變形必須能正確工作。 適應性&#xff1a;構件應該易于通過參數化等方式在不同語境中進行配置。 可移植性&#xff1a;構件應能在不同的硬件運行平臺和軟件環境中工作。 可變…

Spring Boot實現RabbitMQ監聽消息的幾種方式

Spring Boot實現RabbitMQ監聽消息的幾種方式 在現代的分布式系統中&#xff0c;消息隊列扮演著至關重要的角色&#xff0c;用于解耦服務之間的通信&#xff0c;實現異步消息傳遞。而RabbitMQ作為其中一種常用的消息隊列服務&#xff0c;在Spring Boot中得到了廣泛的應用。本文…

pip(包管理器) for Python

pip是什么 pip是Python的包安裝程序&#xff0c;即python包管理器。您可以使用 pip 從Python包索引和其他索引安裝包。 1. pip 安裝 python 包 pip install 包名 例如&#xff1a;pip install pymssql &#xff1a; 使用pip安裝數據庫驅動包 pymssql 2.pip 卸載 python 包 pi…

【Axure教程】拖動換位選擇器

拖動換位選擇器通常用于從一個列表中選擇項目并將其移動到另一個列表中。用戶可以通過拖動選項來實現選擇和移動。這種交互方式在許多Web應用程序中很常見&#xff0c;特別是在需要對項目分組的情況下。 所以今天作者就教大家怎么在Axure用中繼器制作一個拖動換位選擇器的原型…

告別硬編碼:Spring條件注解優雅應對多類場景

一、背景 在當今的軟件開發中&#xff0c;服務接口通常需要對應多個實現類&#xff0c;以滿足不同的需求和場景。舉例來說&#xff0c;假設我們是一家2B公司&#xff0c;公司的產品具備對象存儲服務的能力。然而&#xff0c;在不同的合作機構部署時&#xff0c;發現每家公司底…

RedisTemplateAPI:List

文章目錄 ?介紹?List的常見命令有?RedisTemplate API????添加緩存????將List放入緩存????設置過期時間(單獨設置)????獲取List緩存全部內容&#xff08;起始索引&#xff0c;結束索引&#xff09;????從左或從右彈出一個元素????根據索引查詢元素?…

探索 Rust 語言的精髓:深入 Rust 標準庫

探索 Rust 語言的精髓&#xff1a;深入 Rust 標準庫 Rust&#xff0c;這門現代編程語言以其內存安全、并發性和性能優勢而聞名。它不僅在系統編程領域展現出強大的能力&#xff0c;也越來越多地被應用于WebAssembly、嵌入式系統、分布式服務等眾多領域。Rust 的成功&#xff0…

Day25:Leetcode:669. 修剪二叉搜索樹 + 108.將有序數組轉換為二叉搜索樹 + 538.把二叉搜索樹轉換為累加樹

LeetCode&#xff1a;669. 修剪二叉搜索樹 問題描述 解決方案&#xff1a; 1.思路 2.代碼實現 class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root null) {return null;}if (root.val < low) {return trimBST(root.right, low, hi…

Nginx文件解析漏洞復現:CVE-2013-4547

漏洞原理 CVE-2013-4547漏洞是由于非法字符空格和截止符導致Nginx在解析URL時的有限狀態機混亂&#xff0c;導致攻擊者可以通過一個非編碼空格繞過后綴名限制。假設服務器中存在文件1. jpg&#xff0c;則可以通過改包訪問讓服務器認為訪問的為PHP文件。 漏洞復現 開啟靶場 …

Energia單片機實驗-飲水機模擬

一、要求分析 利用狀態機程序思想&#xff0c;使用MSP-EXP430F5529 Launchpad板卡實現以下模擬飲水機的功能。 飲水機是我們生活中常見的家用設備。假設一個簡易的飲水機有兩個按鍵&#xff1a;童鎖按鍵[PUSH1]和熱水按鍵[PUSH2]。 按鍵功能說明&#xff1a; 1.童鎖按鍵&#x…

聯盟 | 歌者 AIPPT X HelpLook攜手,開啟企業高效辦公新時代

面對日益增長的工作負荷和追求效率優化的壓力&#xff0c;企業知識的積累與傳播顯得愈發重要。如何系統化地沉淀員工與企業的知識精華&#xff1f;如何快速分享內外部知識&#xff1f;更重要的是&#xff0c;如何在獲取這些知識后&#xff0c;迅速將其轉化為精美的PPT&#xff…

USB-HID 鍵盤描述符簡介

USB-HID 鍵盤描述符簡介 USB-HID鍵盤設備描述符&#xff1a; #define DEVICE_DESCRIPTOR_SIZE 0x12 #define USB_CTRL_TEST_SZIE 8 #define CONFIG_DESCRIPTOR_SIZE_DUSB 0x0029 //0x0022//0x0029 #define HID_REPORT_DESCRIPTOR_SIZE_DUSB 0x004…