<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          第四章3:while 循環(huán)

          共 2197字,需瀏覽 5分鐘

           ·

          2021-02-25 22:07

          《Python projects for beginners》是我所見最友好的Python入門書,前段時間我組織并與幾位Python愛好者一起對此書翻譯為中文,特別感謝參與翻譯的這些小伙伴,你們辛苦了。正在推文形式連載出來,歡迎學習。

          星期三:while循環(huán)

          今天我們將討論另一種循環(huán)——while循環(huán)。昨天我們看到了循環(huán)的工作原理,以及為什么要使用for循環(huán)。當你需要根據條件而不是計數循環(huán)時,通常使用while循環(huán)。今天我們將討論基于條件的循環(huán)。

          為了完成本課程,讓我們繼續(xù)從上一個筆記本文件“ Week_04”開始,并在下面添加一個標記為“ While 循環(huán)”的Markdown模塊。

          編寫一個while循環(huán)

          就像for循環(huán)一樣,while循環(huán)以關鍵字“ while”開始。之后,就像我們編寫一個if語句一樣,寫上一個相關的條件代碼。讓我們來看下面這個例子:

          #?寫下你的第一個while循環(huán)
          health?=?10
          while?health?>?0:
          ????print(health)
          ????health?-=?1?#?丟失這一行將會使結果一直循環(huán)下去
          #?health?-=1?等價于?health?=?health?-1

          繼續(xù)運行這一代碼塊。這將會循環(huán)打印出變量health的值,直到數值不再滿足>0這一條件。在這種情況下,一旦變量health值不再大于零,while循環(huán)變會停止運行。在最后一行代碼中,我們將變量health值每次循環(huán)運行一次就會減1,直到變量health值接近于零。如果我們對變量health值不做任何修改,那么,整個while循環(huán)就會變成無限循環(huán)(遇到這種情況是極其糟糕的)。

          While vs. For

          雖然,我在之前已經多次解釋了我們使用每個循環(huán)類型的原因,但是,再次重申這些概念仍然是有必要的。當需要計數或迭代時,通常使用for循環(huán)。在執(zhí)行基于條件的操作時,通常使用while循環(huán)。當使用while循環(huán)時,通常會用到條件判斷的布爾值(True為符合條件,False為不符合條件)。每個循環(huán)都有他們的最適合的應用環(huán)境,但在實際操作中,在大多數情況都是看個人的喜好。一般的經驗法則是涉及到計數用for循環(huán),涉及到條件判斷則用while循環(huán)。


          注意:pass、break和continue語句對于while循環(huán)也是同樣的工作原理。


          無限循環(huán)

          在之前的章節(jié)中,我曾提到無限循環(huán)是不好的。無限循環(huán)將使代碼持續(xù)運行直到程序中斷,或計算機關機或時間停止為止。知道了這些后,在我們創(chuàng)建項目時,請一定要避免創(chuàng)建無限循環(huán)的代碼塊。讓我們來看一個無限循環(huán)的例子:

          game_over?=?False??#?等于布爾值False
          while?not?game_over:??#?not?Fasle?=?True
          ????print(game_over)

          如果你要在一個代碼塊中運行此程序,最終結果便是,你將不得不關閉Jupyter Notebook并重新啟動它(或至少重新啟動內核)。這是因為game_over變量從不變沒有變?yōu)門rue,while循環(huán)的條件一直符合并不斷運行,直到game_over變量變?yōu)門rue。在撰寫循環(huán)代碼的時候,我們一定要確保有退出循環(huán)的方法,無論是通過break中斷所有循環(huán),還是通過continue中斷當前條件而運行下一條件循環(huán)。

          嵌套循環(huán)

          一個循環(huán)內包含另一個循環(huán)的概念就是我們所說的嵌套循環(huán)。同時,循環(huán)概念仍然適用。使用嵌套循環(huán)時,只有內循環(huán)代碼完成運行后,外部的循環(huán)代碼才會運行。讓我們來看一個例子:

          #?嵌套循環(huán)是使用兩個及以上的循環(huán)
          for?i?in?range(2):??#?外循環(huán)
          ????for?j?in?range(3):??#?內循環(huán)
          ????????print(i,j)

          繼續(xù)并運行這一代碼塊。一開始,這似乎有點令人困惑,因為這里有很多事情要做。讓我們用表4-4詳細說明輸出結果。

          表4-4 跟蹤嵌套循環(huán)值

          迭代i值j值內循環(huán)值外循環(huán)值
          10011
          20121
          30231
          41042
          51152
          61262

          總的來說,從表4-4中可以看到,內部循環(huán)一共運行6次(3次在外循環(huán)為數值1時,3次是外循環(huán)數值為2時),外部循環(huán)運行2次。而i值也僅在外循環(huán)運行時才會遞增,直到內循環(huán)完成后才運行外循環(huán)。內循環(huán)必須每次從0到3(不包括3)計數才能運行下一個 外循環(huán)進行迭代。

          星期三練習

          1.用戶輸入:編寫一個while循環(huán),每次循環(huán)都會要求用戶輸入后才可運行,直到他們鍵入“quit”命令才會停止。

          2.雙循環(huán):在while循環(huán)中編寫for循環(huán),從0到5進行計數,當循環(huán)到等于3時,所設條件變量game_over為True并中斷整個while循環(huán)。while循環(huán)只有在條件變量game_over為True時,才會停止循環(huán),而輸出結果只有0,1,2。


          小提示:使用break語句,防止程序陷入無限循環(huán)。



          今天是短短的一天,因為循環(huán)概念不論對于while循環(huán)還是for循環(huán)都是相同的。但請記住,while循環(huán)用于條件循環(huán),而for循環(huán)則用于進行計數/迭代。


          點擊關注
          瀏覽 42
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91ThePorn国产在线观看 | 国二区在线播放视频 | 欧美A片在线 | 91狠狠综合久 | 国产精品自拍偷拍 |