Python 循環語法詳解

在編程中,循環是一種非常常見的控制結構。很多時候,我們需要重復做一些事情,比如遍歷列表、處理數據、嘗試直到成功等。這時候,就離不開循環了。Python 提供了兩種主要的循環結構:for 循環 和 while 循環。本篇文章會從基礎到進階,帶你全面掌握 Python 中的循環。

參考文章:Python 循環 | 簡單一點學習 easyeasy.me

目錄

  1. 什么是循環?
  2. for 循環基礎用法
  3. while 循環基礎用法
  4. 循環控制語句:break、continue、else
  5. 循環中的 range() 函數
  6. 遍歷常見數據結構(列表、字典、集合、字符串)
  7. 嵌套循環
  8. 列表推導式中的循環
  9. 循環的常見坑和優化建議

1. 什么是循環?

循環就是讓程序“重復做某件事”。比如:

print("Hello")
print("Hello")
print("Hello")

你可以用循環來寫得更簡單:

for i in range(3):print("Hello")

這樣是不是清爽多了?


2. for 循環基礎用法

for 循環常用于“遍歷”一些東西,比如列表、字符串、字典等。

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

輸出:

apple
banana
cherry

變量名自定義

你不一定要用 fruit,變量名可以是你喜歡的,比如:

for x in fruits:print(x)

3. while 循環基礎用法

while 循環的意思是:“只要這個條件成立,就一直重復執行”。

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

注意:while 循環容易寫成死循環,一定要注意循環條件會終止!


4. 循環控制語句:break、continue、else

break:提前跳出循環

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

輸出:

0
1
2
3
4

continue:跳過這次,繼續下一次循環

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

輸出:

0
1
3
4

else:循環正常結束后才執行

for i in range(3):print(i)
else:print("循環結束了")

5. 循環中的 range() 函數

range() 是一個生成數字序列的函數,經常和 for 搭配用。

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

輸出:

0
1
2
3
4

range 的幾種寫法:

range(stop)             # 從 0 到 stop-1
range(start, stop)      # 從 start 到 stop-1
range(start, stop, step)# 每次加 step,直到 stop 前結束

例如:

for i in range(2, 10, 2):print(i)

輸出:

2
4
6
8

6. 遍歷常見數據結構

列表

names = ["Alice", "Bob", "Charlie"]
for name in names:print(name)

字典

遍歷鍵:

d = {"a": 1, "b": 2}
for key in d:print(key, d[key])

遍歷鍵值對:

for key, value in d.items():print(key, value)

集合

s = {"a", "b", "c"}
for item in s:print(item)

字符串

for ch in "hello":print(ch)

7. 嵌套循環

循環里套循環,用于處理二維數據或復雜結構:

for i in range(3):for j in range(2):print(f"i={i}, j={j}")

輸出:

i=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
i=2, j=0
i=2, j=1

8. 列表推導式中的循環

想一行生成列表?看這個:

squares = [x*x for x in range(5)]
print(squares)

輸出:

[0, 1, 4, 9, 16]

加上條件:

evens = [x for x in range(10) if x % 2 == 0]
print(evens)

9. 循環的常見坑和優化建議

常見問題

  • 忘了更新變量導致死循環
  • 寫錯循環條件
  • 不小心修改了遍歷的列表

小技巧

  • enumerate() 獲取索引和值
  • zip() 同時遍歷多個列表
  • 盡量避免嵌套循環太深,影響效率
    好的,以下是兩個 enumerate() 和兩個 zip() 的示例代碼,不帶額外解釋:

enumerate() 示例 1:

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):print(index, fruit)

enumerate() 示例 2:

names = ['Tom', 'Jerry', 'Spike']
for i, name in enumerate(names, start=1):print(f"{i}. {name}")

zip() 示例 1:

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):print(f"{name}: {score}")

zip() 示例 2:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']
for a, b, c in zip(list1, list2, list3):print(a, b, c)

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

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

相關文章

一個小巧神奇的 USB數據線檢測儀

一個小巧的數據線檢測儀&#xff0c;檢測各種USB數據線是否損壞、通斷&#xff0c;TYPE_C、MICRO_B、蘋果線、燒錄線、網線都可檢測。嵌入式開發者的稱手工具。 這個是我個人制作的&#xff0c;SMT和連接器比較貴&#xff0c;特別是24PIN的C口連接器&#xff0c;我掛在黃色小魚…

37.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--擴展功能--增加Github Action

在第二部分&#xff08;微服務基礎工具與技術&#xff09;中我們講解了GitHub Action的相關知識&#xff0c;那么在這一節中&#xff0c;我們將為已有的微服務增加GitHub Action的支持。 一、什么是GitHub Action 雖然前面已經介紹過GitHub Action的相關知識&#xff0c;但這里…

ROS2 通過 命令行 發布速度控制指令 控制 麥克娜姆輪

在 ROS2 中&#xff0c;要通過命令行發布速度控制指令來控制麥克娜姆輪機器人&#xff0c;你需要知道機器人所使用的速度控制話題和消息類型。通常麥克娜姆輪機器人使用geometry_msgs/Twist消息類型來接收速度指令。 以下是通過命令行發布速度控制指令的方法&#xff1a; 首先確…

多層Model更新多層ListView

一、總體架構QML (三層 ListView)└─ C 單例 DataCenter (QQmlContext 注冊)├─ L1Model (一級節點)│ └─ 內部持有 QList<L2Model*>│ └─ L2Model (二級節點)│ └─ 內部持有 QList<L3Model*>│ └─ L3Model (三級節…

Git基礎操作教程

本文目的是掌握Git基礎操作教程一、Git簡介Git&#xff1a;分布式版本控制系統&#xff0c;使用倉庫(Repository)來記錄文件的變化最流行的版本控制系統有兩種&#xff1a;集中式&#xff08;SVN&#xff09;、分布式&#xff08;Git&#xff09;二、Git操作1.創建倉庫倉庫(Rep…

Android 之 Kotlin

變量變量的聲明Kotlin使用var&#xff0c;val來聲明變量&#xff0c;注意&#xff1a;Kotlin不再需要;來結尾var 可變變量&#xff0c;對應java的非final變量var b 1val不可變變量&#xff0c;對應java的final變量val a 1兩種變量并未聲明類型&#xff0c;這是因為Kotlin存在…

Design Compiler:布圖規劃探索(ICC)

相關閱讀 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 簡介 在Design Compiler Graphical中&#xff0c;可以用布圖規劃探索(Floorplan Exploration)功能&#xff0c;打開IC Compiler進行布圖規劃的創建、修改與分…

《藍牙低功耗音頻技術架構解析》

《2025GAS聲學大講堂—音頻產業創新技術公益講座》低功耗藍牙音頻系列專題LE Audio & Auracast?專題講座第1講將于8月7日周四19點開講&#xff0c;本次邀請了藍牙技術聯盟 技術與市場經理 魯公羽 演講&#xff0c;講座主題&#xff1a;《藍牙低功耗音頻技術架構解析》。&…

ubuntu apt安裝與dpkg安裝相互之間的關系

0. 問題解釋 在linux系統中&#xff0c;使用neofetch命令可以看到現在系統中使用dpkg, flatpak, snap安裝的包的數量&#xff0c;那么使用apt安裝的包被統計在什么位置了呢&#xff0c;使用apt的安裝流程和使用flatpak的安裝流程有什么關系和區別呢?1. apt 安裝的包在哪里&…

YooAsset源碼閱讀-Downloader篇

YooAsset源碼閱讀-Downloader 繼續 YooAsset 的 Downloader &#xff0c;本文將詳細介紹如何創建下載器相關代碼 CreateResourceDownloaderByAll 關鍵類 PlayModeImpl.csResourceDownloaderOperation.csDownloaderOperation.csBundleInfo.cs CreateResourceDownloaderByAll 方法…

豆包新模型與 PromptPilot 實操體驗測評,AI 輔助創作的新范式探索

摘要&#xff1a;在 AI 技術飛速發展的當下&#xff0c;各類大模型及輔助工具層出不窮&#xff0c;為開發者和創作者帶來了全新的體驗。2025 年 7 月 30 日廈門站的火山方舟線下 Meetup&#xff0c;為我們提供了近距離接觸豆包新模型與 PromptPilot 的機會。本次重點體驗了實驗…

深入探討AI在測試領域的三大核心應用:自動化測試框架、智能缺陷檢測和A/B測試優化,并通過代碼示例、流程圖和圖表詳細解析其實現原理和應用場景。

引言隨著人工智能技術的飛速發展&#xff0c;軟件測試領域正在經歷一場深刻的變革。AI技術不僅提高了測試效率&#xff0c;還增強了測試的準確性和覆蓋范圍。本文將深入探討AI在測試領域的三大核心應用&#xff1a;自動化測試框架、智能缺陷檢測和A/B測試優化&#xff0c;并通過…

音視頻學習筆記

0.vs應用其他庫配置1基礎 1.1視頻基礎 音視頻錄制原理音視頻播放原理圖像表示rgb圖像表示yuvhttps://blog.51cto.com/u_7335580/2059670 https://blog.51cto.com/cto521/1944224 https://blog.csdn.net/mandagod/article/details/78605586?locationNum7&fps1 視頻主要概念…

LLM隱藏層狀態: outputs.hidden_states 是 MLP Residual 還是 Layer Norm

outputs.hidden_states 是 MLP Residual 還是 Layer Norm outputs.hidden_states 既不是單純的 MLP Residual,也不是單純的 Layer Norm,而是每一層所有組件(包括 Layer Norm、注意力、MLP、殘差連接等)處理后的最終隱藏狀態。具體需結合 Transformer 層的結構理解: 1. T…

XML 用途

XML 用途 引言 XML&#xff08;可擴展標記語言&#xff09;是一種用于存儲和傳輸數據的標記語言。自1998年推出以來&#xff0c;XML因其靈活性和可擴展性&#xff0c;在眾多領域得到了廣泛應用。本文將詳細介紹XML的用途&#xff0c;幫助讀者全面了解這一重要技術。 一、數據存…

亞馬遜撤離Google購物廣告:重構流量生態的戰略博弈

戰略突變&#xff1a;從漸進收縮到全面退潮的背后邏輯亞馬遜在2025年7月突然全面停止Google Shopping廣告投放&#xff0c;這場看似 abrupt 的決策實則經歷了一年多的戰略鋪墊&#xff0c;從2024年Q1開始的預算削減&#xff0c;到2025年Q2美國市場支出減半&#xff0c;直至核心…

【QT】常?控件詳解(三)常用按鈕控件PushButton RadioButton CheckButton Tool Button

文章目錄前言一、PushButton1.1 QAbstractButton1.2 添加圖標的按鈕1.3 給按鈕添加快捷鍵1.4 代碼?例:按鈕的重復觸發二、 RadioButtion2.1簡介2.2 幾個槽函數 click,press,release, toggled 的區別2.2 模擬分組點餐三、 CheckBox四、Tool Button&#x1f6a9;總結前言 一、P…

數據結構:反轉鏈表(reverse the linked list)

目錄 通過交換元素值實現反轉&#xff08;reverse by swapping elements&#xff09; 滑動指針&#xff08;sliding pointers&#xff09; 使用滑動指針反轉鏈表&#xff08;Reversing a Linked List using Sliding Pointers&#xff09; 對比分析 如何用遞歸&#xff08;R…

【C#】基于SharpCompress實現壓縮包解壓功能

1.SharpCompress安裝 在vs的nuget下搜索安裝SharpCompress&#xff0c;如圖所示2.解壓縮包功能實現 /// <summary> /// 解壓壓縮包 /// </summary> /// <param name"filePath">壓縮包文件路徑</param> /// <param name"directoryPat…

mybatis連接PGSQL中對于json和jsonb的處理方法

pgsql數據庫表字段設置了jsonb格式&#xff1b;在java的實體里使用String或者對象轉換會一直提示一個錯誤&#xff1a; Caused by: org.postgresql.util.PSQLException: ERROR: column “xx” is of type jsonb but expression is of type character varying 需要加一個轉換方法…