零基礎學編程python第十課,for……in循環語句與while循環語句

2021-01-11 天天讀史

很高興又和大家見面了。上一課,我們學習了兩種新的數據類型: 列表與字典。

這節課,帶大家來學習一下【循環】,什麼是循環? 就是把一件事情一遍又一遍重複做多遍。

每個人的工作和生活中都充滿了循環,比如你要在操場上跑步5圈鍛鍊身體,比如銷售要一遍又一遍給別人介紹產品,比如高三考生高考前每天三點一線的生活。

循環,就意味著重複與無趣。尤其是工作中的重複,無聊重複的工作讓我們感覺到疲憊。既然疲憊,我們就把這重複無聊的工作交給計算機,反正它又不怕累,交給它去做。

這就是人工智慧能夠解放人類勞動生產力的地方。 比如你需要下載100集電視劇,你不需要一集一集的下載,只需要告訴計算機全部下載,計算機就一遍又一遍的循環下載,並且最後還能把這些電視劇按照一定的規則排序。你會發現,計算機全部下載,比你一集一集的下載要快的多,這就是計算機的優勢。

再比如商場裡的銷售員,每位客戶到來,她都需要介紹一遍產品,如果今天來50位客戶,她就需要介紹50遍產品。而計算機機器人,就可以通過【循環】,一遍又一遍不厭其煩的向客戶介紹產品,計算機又不怕累。現在,是不是感覺」循環」不一樣了。什麼計算機就特別擅長做重複性工作呢? 並且是」擅長、速度快、不怕累」。

究其原理, 就是因為代碼中的【循環語句】,讓計算機能夠重複、自動地執行命令。

Python江湖裡,提供了兩種循環語句, for…in循環語句與while循環語句。

下面, 我們先來看一下第一種循環語句for…in循環語句, 簡稱for循環。

還記得在上節課中, 我們對同學點名嗎? 回顧一下點名代碼。

我們為了點名, 一口氣敲了20行print()函數, 我不知道大家, 反正我是敲累了。

為了解決這個事情, 通過for循環解決了上面的問題。

是不是變簡單了? 把20行的代碼改成了2行代碼。 這就是for循環魅力,一個最簡單的for循環。

先來看一下for循環的基本格式:

來,運行上圖中的代碼, 觀察終端裡的效果。

終端上依次出現了列表中的數字+取錢,對吧?這就如同去取款機取錢。

for i in [1,2,3,4,5,6]:

print(str(i)+'取錢')

#有一群人在排隊取錢 , 也就是列表[1,2,3,4,5,6]

#它們中的每一個被叫號的時候(for i in),就開始輪流進去取錢。

#每一個人進去,都會把號碼給計算機,然後說「取錢」 , 也就是print(i+「取錢」)

#最後計算機為每一個人都提供了服務。

or循環有三個要點:1、叫號 2、一群等著取錢的人 3、辦事流程

叫號

既然叫號,就得有個變量,需要存放這個號。在這裡我們存放號這個變量叫做i,為什麼用i呢? 在for循環裡, 這個變量的專有名稱叫【元素】,英文item,i是它的簡稱。其實,你可以給這個號碼取任意名字。

你看,是不是都能列印出來?這就對了,存號用什麼變量名都可以。

好了,如果這人都辦完了業務, 這個ATM機裡存的號是誰的?運行下面代碼, 觀察終端裡的效果。

原來,辦完業務之後, ATM機裡保存著是最後一個辦業務人的號碼。

搞清楚這個叫號了,下面我們看一下這群排隊等著取錢的人。

一群排隊等著取錢的人

我們剛剛看到「一群排隊等著取錢的人」,都是以列表形式:[1,2,3,4,5,6]出現。 那麼還有哪些數據類型可以成為「排隊取錢的人」?

小編感覺你已經猜到了, 就是字典。

運行下面代碼, 觀察終端裡的效果。

我們用print(i)把ATM中的內容列印出來,發現i會逐漸接收字典中的每一個【鍵】。

那麼你猜一下,哪些不屬於「一群排隊取錢的人」呢。

選擇題

請問以下哪項的數據不能放在for i in name這個循環中:

A: name = [10,35,40,80]

B: name = 100

C: name = {'京':'北京','滬':'上海','粵':'廣東'}

D: name = '黃曉明'

恭喜你答對了,選B。 B項 name=100,100隻是整數,

能排隊取錢的是列表與字典。是不是有些疑問?為什麼'黃曉明'也可以呢?

不要懷疑,字符串也屬於一群排隊取錢的人。打個比方,『黃曉明『三個字就指的是一家三口, 但去ATM取錢時, 這家人可以一個一個進去。

你看, 是不是字符串也可以成為一群排隊取錢的人。 而整數、浮點數絕對不是的,整數與浮點數排隊取錢會報錯的。

江湖秘籍: 字符串、列表、字典都可以是「一群排隊取錢的人「。

for in name:這個循環的過程,在python江湖中稱為【遍歷】。

其實,遍歷這個詞在古代漢語中已經出現過了

只是古人遍歷的是山川;而Python遍歷的是字符串、列表、字典。

除了字符串、列表、字典三種數據類型,我們還可以結合其他數據遍歷。

range()函數

for循環經常和range()函數一起搭配使用。

運行後, 你會看到整數0,1,2,3,4已經列印出來了。 使用range(n)函數,就可以生成一個從0到n-1的整數序列。

它還可以變形。運行下面代碼,觀察終端裡的效果。

使用range(x,y) 函數,你可以生成從x到y-1的整數序列。

江湖秘籍:有了range()函數之後,當想把一段代碼重複執行n遍時, 就可以直接使用for i in range(n)來解決問題。

for i in range(0,6):

print(i)

來練習一下:如果重複列印「每天想你第n遍」,n從0到6,你會怎麼寫?

for i in range(7):

print('每天想你第'+str(i)+'遍')

range()函數還有另外一種用法, 運行下面代碼, 觀察終端裡的效果。

for i in range(0,100,11):

print(i)

你get到什麼沒有? 這裡range(0,100,11) 的意思:從0到99(n-1)依次取數, 數與數之間的間隔為11。

for循環辦事流程

我們最後來看一下for循環的第三個要點:辦事流程。

for循環的辦事流程,就是for循環中執行的語句。

運行一下下面代碼, 觀察終端裡的效果。

運行一下,列印出 3 , 6, 9 。

在這裡print(i*3)就是辦事流程, 都是print(i*3)。在當從i=1的情況下開始執行print(i*3),一直執行到i=3把所有人的業務都辦完。

辦事流程的專名叫【for的循環體】:格式是【冒號】後另起一行,【縮進】寫命令。

格式對於編程來說,是件特別需要注意的事情。不要大意失荊州哦。再強調一下for循環的格式:

好了,到這裡就掌握了for循環的用法。你嘗試下使用for循環該如何操作?試一下。

city = {'北京':'美美','上海':'躍升','廣州':'小天'}

for i in [1,3,6]:

print(i+1)

你做對了嗎?

到這裡for循環就講完了, 一起回顧一下。

好了,我們學習了for循環, 下面來學習一下另外一種循環:while循環。

While循環

先和while循環混個臉熟,看一下while循環的顏值

你猜一猜,上圖代碼運行之後,會有什麼結果?

x = 0

while x < 6:

x = x+1

print(x)

是不是1,2,3,4,5,6依次列印出現?

它和for循環不同,它不叫號,也不是把一群排隊等著取錢的人的業務做完。它是在「一定條件下「,」按流程辦事」。

顯然,while循環只需要兩個步驟:1、設定條件 2、辦事流程

while循環:設定條件

while循環在英文中表示「當」, while後面跟條件,當滿足條件時,才會執行while內部的循環體。

所以,while循環類似於高速上的收費站:只要你滿足條件,那你就可以一遍又一遍循環「按流程辦事」。

在上面例子中,只要滿足條件x<6, 就會不停的執行x=x+1,print(x+1)列印出來,直到不滿足條件後,就停止辦事流程。

同樣,while循環也有代碼規範。

江湖秘籍:冒號還是英文輸入法下的冒號哦。

剛才黃曉明家的Angelababy去取錢,需要輸密碼,只要密碼輸入錯誤,ATM就會一直讓她輸密碼,如果密碼輸入正確,就會顯示銀行卡餘額。銀行卡的密碼是520666。

這段代碼,我先寫出來,你運行一下。

pwd = '' # 註:這個''代表空字符串

while pwd != '520666':

pwd = input('請輸入銀行卡密碼:')

print('卡內還有999999999999元~')

感受到while循環的邏輯沒有,是不是很簡單

這裡 pwd!=520666就是while循環設定的條件, 只要滿足這個條件,就會一直執行while循環裡面的循環體pwd = input('請輸入銀行卡密碼:')。

好了,接下來我們看看while循環的第二個要點:辦事流程。

while循環:辦事流程

while循環,在滿足設定條件後,會一遍又一遍的循環執行辦事流程。

來道題,看看大家如何理解while循環的:

a=0

while a<4:

a = a+1

print(a)

觀察上面代碼,如果運行代碼,終端中的結果是?

A: 5

B: 4

C: 1,2,3,4依次出現

rint(a)這句代碼沒有縮進,不在while循環中,所以print(a)只會列印最後一次的內容,即為4。

所以說,你要看好,while 設定條件:後面的循環體語句必須縮進,只有縮進了才是while循環的循環體,才能一遍又一遍的執行。

好了,我們運行下面代碼, 觀察終端裡的效果。

print("while循環內")

print(a)

print("while循環外")

好了,到這裡,while循環的知識學完了。

現在,我們 已經學習了for循環與while循環,下面,我們對比一下,兩個循環有什麼區別。

for循環與while循環對比

for循環和while循環最大的區別就是在於【循環的工作量是否確定】,for循環就像ATM依次取錢一樣,直到把所有人的錢都取完才下班。但是while循環就像收費站一樣,只要【滿足條件】就幹活,不滿足條件不幹活。

把『黃曉明『拆成一個一個字符,這件事屬於【循環的工作量已經確定】。

而對於輸入密碼,判斷是否正確這件事,我們也不知道Angelababy輸幾次密碼才能搞定呀。

江湖秘籍:看下圖,保存好,當以後行走江湖遇到for循環與while循環的時候,再看看。

相關焦點

  • Python while循環語句的使用
    本篇介紹Python循環語句的使用,文中主要討論while循環語句,使用while循環語句可以解決程序中需要重複執行的操作,本文講解的每個案例中都配有流程圖和代碼說明。通過本篇的學習,可以達成如下目標。
  • python循環控制語句
    循環語句語句後面一定要跟:冒號for循環:1.for…in range()遍歷格式:for i in range(5);或者for i in range( 0,10,3 );格式中的1列印i是從0開始後列印到5結束
  • 少兒編程Python第4課-for循環語句(質數判斷)
    我們要實現一個每隔1秒中在屏幕上列印一次「hello, world」;並持續列印一個小時的程序,我們肯定不能夠直接把`print('hello, world')`這句代碼寫3600遍,如果真的要這樣做,那麼編程的工作就太無聊乏味了。因此,我們還需要了解一下循環結構,有了循環結構我們就可以輕鬆的控制某件事或者某些事重複、重複、再重複的去執行。
  • python循環語句用數據做判斷:布爾值和布爾運算
    python循環語句用數據做判斷:布爾值和布爾運算更深入的學習循環語句的用法:用數據做判斷:布爾值 和 布爾運算之前我們提到,計算機利用數據有三種方式:1.直接使用數據,2.計算和加工數據,3.用數據做判斷。
  • Python的range函數與for循環語句
    本篇介紹Python for循環語句和range函數的使用,文中主要討論for循環語句,Python的for循環語句類似於shell或是腳本語言中的foreach循環,可以迭代序列對象。使用range函數可以讓Python的for循環提供類似於傳統的for循環功能。通過本篇的學習,可以達成如下目標。
  • Python語言基本語法元素之語句,表達式、賦值語句
    編程和學習數學在很多地方是相通的,都需要從基礎知識一步一步往上學習。例如要真正理解 指數增長 的意思,先要知道什麼是指數函數、什麼是函數曲線。在看到指數函數的曲線的時候,你才能理解 指數增長 增長的迅猛程度。今天筆者想寫Python語言基本語法元素中的語句語句如圖,程序代碼就是一行行語句。
  • Python入門第7課,循環結構學習,for語句range函數的3種用法
    上課前,大陳帶領學生們一起回顧和梳理前面學過的知識。體驗課,Python與人工智慧初體驗。第1課,輸出語句及賦值語句。第2課,輸入語句學習。第3課、第4課,學習條件控制if語句。第5課、第6課,階段練習及講解。
  • 跟我學java編程—深入理解for語句的嵌套循環
    前面已經介紹了嵌套循環的概念,並通過示例介紹了while循環和do-while循環嵌套的情況。本節介紹for循環結構,for循環也可以嵌套。不僅如此,for循環還可以和其它的循環結構混合嵌套。用記事本打開「ForSample2.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示for與while混合嵌套循環的使用方法。程序外層循環控制輸出100至200之間的數,內層的while循環用於找尋從2到該數之間第一個能被整除的數,內層循環判斷條件為i%j != 0,其中i為當前要判斷是否是素數的數,j為從2開始循環遞增的數,如果i%j !
  • VBA中重複操作的神器,Do……Loop循環語句,你值得擁有它
    Hi,大家好,本專欄將會從零開始和大家用圖文的方式,讓你從零基礎學會VBA!有興趣的小夥伴可以持續關注我,或者在專欄進行查看學習,願與君攜手共進!在上一個章節中我們已經學習集合的循環和數字的循環,那麼有時候我們並不知道我們要具體循環的次數,這個時候For—Next循環就無能為力啦!
  • VBA中的循環語句
    今日給大家講VBA的循環語句,這個是非常基礎的知識,在VBA的相關內容中我也一直在用,也在不斷的講解,今日專門作為一個專題給大家詳細的說明,中間也有一些有意思的小例子,供大家玩耍。一 FOR NEXT語句 這種循環是以指定的次數,來重複執行的一組語句這個結構一般是這樣的:for counter= start to end [ step 步長值][statements][exit for][statements]Next counter具體解釋一下,初始值指的是循環開始的值
  • excel編程系列基礎:常用語句之循環語句的邏輯理解
    今天是第三篇VBA實戰入門教程,我們將給大家帶來VBA中最常見語句之一,循環語句。典型的循環語句有4種,分別是Do While…Loop循環、Do…Loop Until循環、For…Next循環、For Each x In y … Next循環。查看循環邏輯圖可以更快理解循環語句。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • Java小白入門教程(6)——循環語句
    提綱: 1、循環結構 2、while循環 3、do-while循環 4、for循環 5、break語句 6、continue
  • 數控編程實例循環銑沉孔,條件語句結合G02走圓
    上一篇我們講解了條件語句用於循環開槽的編程,只用了G01直線命令,基本了解了條件語句的應用。下面我們開始深化應用,用圓弧指令結合條件語句來加工那些尺寸較大的沉孔。這類孔尺寸大,不能通過鑽孔的方式完成,我們需要採用銑削的方式通過多刀進給來完成加工。下面我會通過實例給大家分析講解。
  • java中if,while,do-while三種循環的區別
    各位小夥伴們,大家好,這次小編要介紹的是Java當中if,while,do-while三種循環的區別三種循環的區別,在之前的文章中,這三種循環小編都有介紹過,就不多說了。現在我們主要是看這三種循環的區別。
  • C語言基礎:以實例跟我學while循環結構,計算圓周率pi
    循環結構是程式語言中的一種基本程序結構,C語言中有兩種表示方法,分別可通過for循環和while循環結構實現。上篇文章已經講了for循環的使用方法,詳細請參考:這次通過一個計算圓周率pi的例子給大家介紹C語言中while循環結構的編程方法。
  • python while循環、數據類型
    ', 'ruby'],'sarah': ['c'],'edward': ['ruby', 'go'],'phil': ['python', 'haskell'],} for name, languages in favorite_languages.items():print("\n" + name.title()
  • Python基礎教程(一) - 條件和循環
    while語句while是一個條件循環語句。while中的代碼塊會一直循環執行,知道循環條件不再為真。看個簡單的例子:你必須小心的使用while循環,因為有可能條件永遠不會為布爾假。這樣一來循環就永遠不會結束。
  • 利用Python基礎代碼語句,實現2G時代文字小遊戲,世界如此簡單!
    曾經流量很少,響應很快,時間很慢,一天可以升幾十級,今天和小狐醬一起利用python製作一款超級簡單的文字小遊戲,一同回到2G文字遊戲時代吧!一、作為一款文字遊戲,想要吸引人眼球,那麼界面美觀就是第一步,我們先來製作一個打開遊戲的第一幕。
  • R語言中的next語句和break語句的具體用法
    在循環結構中我們有時想終止某一次循環,即不再執行這次循環,但還要執行下次循環;還有時我們需要提前結束整個循環,即不再執行循環體中的任何內容了。我們知道在像C語言,C#語言,Java語言中可以分別使用continue語句和break語句來實現,那麼在R語言中也是這樣的嗎?
  • 第三篇:JavaScript語句流程控制
    while循環while循環結構的語法是:while( 條件表達式 ) {代碼段;}其中,條件表達式是循環條件,代碼段為循環體。while循環結構的執行流程:計算條件判斷表達式的值,當值為真(非0)時,執行循環體語句,一旦條件為假,就停止執行循環體。如果條件在開始時就為假,則不執行循環體語句直接退出循環。