python的while循環與for循環總結

前兩章中,我們跟著海綿寶寶的故事,掌握了?while?循環和?for?循環,這兩種不同的循環模式。while?循環和?for?循環都需要有?循環體?和?縮進,我們來復習一下它倆的語法規則:

while?循環與?for?循環辨析

學到這里,對于?while?循環與?for?循環要怎么用,你已經相當熟悉啦,它們都能滿足將某件事重復多次的需求。下面這兩段代碼都能將“美味蟹黃堡”打印 3 遍,只是?for?循環代碼要更簡潔:

# while 循環
i = 0
while i < 3:print('美味蟹黃堡')i += 1  # 還記得 i += 1 是 i = i + 1 的縮寫嗎?# for 循環
for i in range(3):print('美味蟹黃堡')

這么一看,while?循環和?for?循環的功能似乎沒有差異呀?那 Python 中何必還要有兩種不同的循環語句呢?

要回答這個問題,首先要理清楚兩種循環的不同之處,二者最大的區別在于?循環次數是否確定,我們結合兩種循環的終止條件來理解一下。

先來看?for?循環。for?循環的執行邏輯很好理解,遍歷序列,遍歷結束后循環終止。所以說,for?循環的循環次數是確定的,序列中有多少個元素,循環就執行多少次:

# 循環次數確定
names = ['海綿寶寶', '派大星', '泡芙老師', '珊迪', '蟹老板']
for i in names:print(i)

而?while?循環是在條件不滿足時終止循環,我們不需要給出一個確定的循環次數。所以,如果你也不確定要讓 Python 把某件事重復多少遍,那用?while?循環就剛好合適:

# 循環次數不確定
name = ''
while name != '海綿寶寶':name = input('猜猜我是誰?')

大多數情況下,兩種循環是通用的,但像上面這個例子一樣的猜名字、猜數字問題,只能通過?while?循環來實現。

總結一下,while?循環和?for?循環有著完全不同的循環模式。寫?for?循環時,我們無需額外去思考循環的終止條件,只需要提供待遍歷的數據;寫?while?循環則不一樣,無需關心循環的執行次數,只需要提供清晰有效的循環條件。

兩種循環在大多數情況下通用,但各自的特點決定了它們更適合用來解決兩類不同的循環問題:

編程練習

仿照課程中的例子,我們給海綿寶寶寫一個工作提醒器吧。要求:

  • 詢問是否下班了,并使用變量?answer?獲取用戶輸入;
  • 如果用戶輸入的不是?下班了,就重復打印?小海綿努力工作中……,并再次詢問是否下班了。
  • 如果輸入的是?下班了,就結束循環,并打印?回家找小蝸啦

想想看,哪種循環適合解決這個問題呢?🤔

answer = input('下班了嗎?輸入下班了/沒下班')
working = '小海綿努力工作中……'
go_home = '回家找小蝸啦'

因為前面幾章的練習,都是一些固定參數的循環,到這反而有點不習慣了,但是自己觀察就會發現,其實邏輯上還是一樣的,知識多了一個 input()

answer = input('下班了嗎?輸入下班了/沒下班')
working = '小海綿努力工作中……'
go_home = '回家找小蝸啦'while answer != '下班了':print(working)answer = input('下班了嗎?輸入下班了/沒下班')print(go_home)

兩位循環魔法師各有所長,有了他們的加入,蟹黃堡產能大爆發,到店的客人絡繹不絕,連食材供應都跟不上了。

大 Boss 蟹老板囑咐海綿寶寶,一定要做好食材管理,如果倉庫里的食材已經不夠了,那無論是否還有客人等待,都停止做蟹黃堡。

新需求來了!我們不僅要告訴 Python 循環在何時執行,還要在某個時刻強制終止循環。一切的一切,都需要我們對循環進行更精細的控制。

下面一篇文章就讓我來帶你認識兩種常用的?循環控制語句(break與continue)

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

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

相關文章

Microsoft Edge TTS引擎實現文字轉語音小工具

Microsoft Edge TTS引擎實現文字轉語音小工具 ? 看了一篇文章關于使用Microsoft Edge TTS引擎進行文本轉語音的介紹。正好單位工作上經常用到音視頻的制作和轉換。但是文字變成音頻一直都是播音員口播實現。現在到了AI時代,各種功能強大的AI大模型已經應用到各個領域,大大提…

Docker鏡像導入導出

Docker鏡像導入導出 相關命令 docker export 容器id > x:/xx/xx.tar ##導出容器快照 docker import - x:/xx/xx.tar ##導入容器快照 docker save 鏡像id > x:/xx/xx.tar ##導出鏡像 docker load < x:/xx/xx.tar ##導入鏡像命令詳解 docker save …

在鯤鵬服務器搭建k8s高可用集群分享

高可用架構 本文采用kubeadm方式搭建k8s高可用集群&#xff0c;k8s高可用集群主要是對apiserver、etcd、controller-manager、scheduler做的高可用&#xff1b;高可用形式只要是為&#xff1a; 1. apiserver利用haproxykeepalived做的負載&#xff0c;多apiserver節點同時工作…

nginx反向代理了解

文章目錄 Nginx反向代理反向代理系統調優Proxy Buffer相關指令 Nginx 具有高性能的http和反向代理的web服務器&#xff0c;同時也是一個pop3/smtp/imap代理服務器&#xff0c;使用c語言編寫 **Web服務器&#xff1a;**也叫網頁服務器&#xff0c;web server&#xff0c;主要功…

易聯眾智慧云膠片平臺,助推醫學影像服務“向云端”

在門診室里,張女士焦急地告訴主治醫師,自己忘了帶CT膠片。“您別急,我用系統查詢一下。”醫生輕點幾下鼠標進入云膠片平臺,只用不到10秒就順利完成了影像調取。“不僅我可以看到,您在手機上也能隨時隨地查閱。”張女士根據提示操作,不僅能調閱自己的影像檔案,連抽血化驗結果都可…

Spring MVC 啟動流程?

在 web.xml 文件中給 Spring MVC 的 Servlet 配置了 load-on-startup&#xff0c;所以程序啟動的時候會初始化 Spring MVC&#xff0c;在 HttpServletBean 中將配置的 contextConfigLocation屬性設置到 Servlet 中&#xff0c;然后在FrameworkServlet 中創建了 WebApplicationC…

[GeoServer系列]Shapefile數據發布

【GeoServer系列】——安裝與發布shapefile數據-CSDN博客 將待發布數據放置指定目錄下 webapps\geoserver\data\data 創建存儲倉庫 新建矢量數據源 發布圖層 設置邊框 設置樣式 使用 方式1 let highRoad new Cesium.WebMapServiceImageryProvider({url: http://local…

blender從視頻中動作捕捉,綁定到人物模型

總共分為3個步驟&#xff1a; 1、從視頻中捕捉動作模型 小K動畫網-AIGC視頻動捕平臺 地址&#xff1a;https://xk.yunbovtb.com/ 需要注冊 生成的FBX文件&#xff0c;不能直接導入到blender中&#xff0c; 方法有2種&#xff1a; 第一種&#xff1a;需要轉換一下&#x…

Spring Cloud學習筆記(Nacos):Nacos持久化(未完成)

這是本人學習的總結&#xff0c;主要學習資料如下 - 馬士兵教育 1、Overview2、單機使用MySQL 1、Overview 我們關閉單機下的Nacos后&#xff0c;再重新啟動會發現之前配置的內容沒有被刪除。這時因為Nacos有內嵌的數據庫derby&#xff0c;會自己持久化。 但是在集群的情況下…

QT6.0以上版本實現實時圖像傳輸

目錄 服務端開啟攝像頭&#xff0c;捕獲存儲圖片TCP圖像傳輸延時函數 客戶端建立連接接收數據和處理緩沖區接收的一些想法 QT借助tcp實現圖像傳輸&#xff0c;達到類似實時監控的目的。 QT到6.0以上后貌似原來的5.0的一些圖像的捕獲的函數都無法使用了&#xff0c;網上好像也沒…

KAN(Kolmogorov-Arnold Network)的理解 3

系列文章目錄 第一部分 KAN的理解——數學背景 第二部分 KAN的理解——網絡結構 第三部分 KAN的實踐——第一個例程 文章目錄 系列文章目錄前言KAN 的第一個例程 get started 前言 這里記錄我對于KAN的探索過程&#xff0c;每次會嘗試理解解釋一部分問題。歡迎大家和我一起討…

百度/迅雷/夸克,網盤免費加速,已破!

哈嘍&#xff0c;各位小伙伴們好&#xff0c;我是給大家帶來各類黑科技與前沿資訊的小武。 之前給大家安利了百度網盤及迅雷的加速方法&#xff0c;詳細方法及獲取參考之前文章&#xff1a; 剛剛&#xff01;度盤、某雷已破&#xff01;速度50M/s&#xff01; 本次主要介紹夸…

Python sorted 用法:深入解析排序函數的奧秘

Python sorted 用法&#xff1a;深入解析排序函數的奧秘 在Python編程中&#xff0c;sorted函數是一個強大的工具&#xff0c;用于對可迭代對象進行排序。然而&#xff0c;它的用法和功能遠不止表面看起來那么簡單。本文將深入剖析sorted函數的四個方面、五個方面、六個方面和…

simulink基礎學習筆記

寫在前面 這個筆記是看B站UP 快樂的宇航boy 所出的simulink基礎教程系列視頻過程中記下來的&#xff0c;寫的很粗糙不完整&#xff0c;也不會補。視頻教程很細跟著做就行。 lesson1-7節的筆記up有&#xff0c;可以加up的群&#xff0c;里面大佬挺活躍的。 lesson8 for循環 For …

【C++初階學習】第十二彈——stack和queue的介紹和使用

C語言棧&#xff1a;數據結構——棧(C語言版)-CSDN博客 C語言隊列&#xff1a;數據結構——隊列&#xff08;C語言版&#xff09;-CSDN博客 前言&#xff1a; 在之前學習C語言的時候&#xff0c;我們已經學習過棧與隊列&#xff0c;并學習過如何使用C語言來實現棧與隊列&…

Python | 平均績點

字符串的概念和特點 字符串既可以使用單引號&#xff0c;也可以使用雙引號""來創建 可以使用運算符來拼接字符串&#xff0c;并返回字符串拼接后的結果。 first_name "Tom" last_name "Jerry" full_name first_name " " &quo…

OCR圖片轉Excel表格:沒結構化的弊端

隨著OCR技術的不斷發展&#xff0c;將表格圖片轉為excel已不再是難題&#xff0c;但是&#xff0c;目前市面上的程序還大多處于僅能將圖片表格轉為普通的excel格式階段&#xff0c;而不能將其結構化&#xff0c;這樣就會產生許多的弊端&#xff0c;具體弊端如下&#xff1a; &l…

數據容器的通用操作、字符串大小比較 總結完畢!

1.數據容器的通用操作 1&#xff09;五類數據容器是否都支持while循環/for循環 五類數據容器都支持for循環遍歷 列表、元組、字符串都支持while循環&#xff0c;集合、字典不支持&#xff08;無法下標索引&#xff09; 盡管遍歷的形式不同&#xff0c;但都支持遍歷操作 2&a…

辦公軟件 Office 安裝教程(親測有效)

Office 現已更名為 Microsoft 365。習慣還是稱作 Office。 1、Office 套裝下載 Windows 的樣子 這里下載的是最新版本的 O365ProPlus 安裝完成后&#xff0c;點擊關閉&#xff08;請先不要打開&#xff09;。 Mac 的樣子 這里下載的是Office for Mac 2019&#xff08;更多版…

QNAP的jellyfin無法使用TMDB刮削的問題

解決方法很簡單&#xff0c;修改QNAP的HOSTS文件 使用DNS Checker工具查詢對應IP&#xff1a; image.tmdb.org api.themoviedb.org www.themoviedb.org 打開hosts文件&#xff0c;添加下列內容&#xff0c;wq保存 [~] # vi /etc/hosts 169.150.249.166 image.tmdb.org 103.2…