亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python中while循環的基本用法

系統 2021 0

Python中while循環的基本用法_第1張圖片

文 | 天罡君

while for 都可以使程序重復執行某一段代碼(又稱作循環體),區別是 for 循環用于針對集合中的每一個元素都一個代碼塊,而 while 循環在表達式為 True 的情況下會不斷地執行,直到指定條件不滿足為止。

今天我們一起來學習下 while 關鍵字的使用。

1.while循環簡介

while在英語中的解釋是:當…時候。

在Python中的語法是:

            
              
                while
              
               表達式
              
                :
              
              
    循環體

            
          

意味著,當 表達式為True 的時候,程序會一直執行循環體代碼, 直至表達式為False

1.1使用while循環

簡單的while循環當屬 數數 了。例如,下面的 while 循環從1數到5:

            
              num 
              
                =
              
              
                1
              
              
                while
              
               num 
              
                <=
              
              
                5
              
              
                :
              
              
                print
              
              
                (
              
              num
              
                )
              
              
    num 
              
                +=
              
              
                1
              
            
          

首先定義了變量 num 并給其初始值1。接下來的 while 循環被設置成這樣:只要 num 小于或等于5,就接著運行循環體代碼。

循環體中的代碼打印變量 num 的值,再使用代碼 num+=1 (代碼num=num+1的簡寫)將其值加1。

只要滿足條件 num<=5 ,python就接著運行這個循環。由于1小于5,因此Python打印1,并將 num 加1,使其為2;由于2小于5,因此Python打印2,并將 num 加1,使其為3,以此類推。一旦 num 大于5,循環將停止,整個程序也將結束運行。

運行結果:

            
              1
2
3
4
5

            
          

有人可能看到這會有點懵:已經有 for 循環了,為啥又搞出個 while 循環?

Python中while循環的基本用法_第2張圖片

注:表情包中不是python代碼

可以簡單的這樣理解: for 循環主要用于那些我們知道循環次數的循環,如,遍歷整個列表,我們知道循環次數就是列表中元素的個數。而 while 循環主要用于那些我們不知道具體循環多少次的循環,人們常說人生就像一個程序,寫成代碼的話,我們人生中發生的所有事情都在 while 活著: 循環的循環體中,我們是不知道一個人到底能活多長時間的,只能用 while

當然,有些循環用 for while 都可以實現。

其實,你每天使用的程序很可能就包含著 while 循環。例如,游戲程序就在一個大的 while 循環中,在玩家退出時停止運行。用 while 循環能讓程序在用戶沒有讓它停止之前一直運行,這點是 for 循環做不到的。

Python中while循環的基本用法_第3張圖片

1.2讓用戶選擇何時退出

可使用 while 循環讓程序在用戶愿意時不斷地運行,當用戶想退出時就可以隨時退出:

            
              prompt 
              
                =
              
              
                "\n輸入一些內容,系統將原樣返回給你:"
              
              
prompt 
              
                +=
              
              
                "\n鍵入 'quit' 結束此程序運行。"
              
              
message 
              
                =
              
              
                ''
              
              
                while
              
               message 
              
                !=
              
              
                'quit'
              
              
                :
              
              
    message 
              
                =
              
              
                input
              
              
                (
              
              prompt
              
                )
              
              
                print
              
              
                (
              
              message
              
                )
              
            
          

我們定義了一條信息提示,告訴用戶他有兩個選擇:要么輸入一條消息,要么輸入’quit’退出程序。

接下來我們創建了變量 message 來接收用戶輸入的內容。Python執行 while 語句時,需要將 message 的值與’quit’進行比較。如果用戶輸入的不是’quit’,程序將打印出用戶輸入,否則將終止程序運行。

[外鏈圖片轉存失敗(img-GPEwzuTm-1568168463339)(https://liuwynn.github.io/images/20190829/圖1-2.png)]

我們向控制臺輸入的任何信息(除’quit’)都能得到一模一樣的返回信息。

當我們鍵入’quit’時,可以終止程序運行:

圖1-3

輸入’quit’以后確實終止了程序,但它將’quit’也打印了出來。這其實無關痛癢,然而精益求精的我們是不能忍受的,怎么能讓它在輸入’quit’時直接退出,輸入其他信息時原樣返回呢?

            
              prompt 
              
                =
              
              
                "\n輸入一些內容,系統將原樣返回給你:"
              
              
prompt 
              
                +=
              
              
                "\n鍵入 'quit' 結束此程序運行。"
              
              
message 
              
                =
              
              
                ''
              
              
                while
              
               message 
              
                !=
              
              
                'quit'
              
              
                :
              
              
    message 
              
                =
              
              
                input
              
              
                (
              
              prompt
              
                )
              
              
                if
              
               message 
              
                !=
              
              
                'quit'
              
              
                :
              
              
                print
              
              
                (
              
              message
              
                )
              
            
          

我們只要讓程序在打印信息前做個簡單的檢查,僅在消息不是’quit’時才打印它:

Python中while循環的基本用法_第4張圖片

可以清楚地看到,這回輸入’quit’之后程序沒有返回’quit’給我們(可不是天罡君截圖的時候故意沒截下面噢)。

1.3更優雅的退出方式

前一個示例中,我們采用判斷 message!='quit' 是否為True的方式來決定程序是否繼續循環執行。可有時影響程序是否繼續執行的條件不止一個,如用戶輸入’quit’或’退出’中的任意一個都可以終止程序運行。

聰明的小伙伴會說那還不簡單,我把判斷條件換成:

            
              message 
              
                !=
              
              
                'quit'
              
              
                or
              
               message 
              
                !=
              
              
                '退出'
              
            
          

這樣做到底可不可以呢?答案是可以的,但不是最好的或者說是不優雅的,我們寫程序的偶爾可以追求下代碼的品質嘛。

[外鏈圖片轉存失敗(img-0jLPo772-1568168463345)(https://liuwynn.github.io/images/20190829/mingxue.jpg)]

更優雅的方式是 使用標志 。可能有小伙伴對這個名詞感觸不深,我們直接上新鮮滾燙的代碼來感受一下。

            
              prompt 
              
                =
              
              
                "\n輸入一些內容,系統將原樣返回給你:"
              
              
prompt 
              
                +=
              
              
                "\n鍵入 'quit' 結束此程序運行。"
              
              
active 
              
                =
              
              
                True
              
              
                while
              
               active
              
                :
              
              
    message 
              
                =
              
              
                input
              
              
                (
              
              prompt
              
                )
              
              
                if
              
               message 
              
                ==
              
              
                'quit'
              
              
                :
              
              
        active 
              
                =
              
              
                False
              
              
                elif
              
               message 
              
                ==
              
              
                '退出'
              
              
                :
              
              
        active 
              
                =
              
              
                False
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              message
              
                )
              
            
          

我們把 active 作為標志位,并且初始值給它True,這里肯定得是True,不然程序無法進入循環,就更別提執行循環體代碼了。

然后使用兩條 if 語句來檢查變量 message 的值。如果用戶輸入的是’quit’,我們就把變量 active 設置成 False ,如果用戶輸入的是’退出’,我們也把變量 active 設置成 False

至于為什么不把兩個 if 判斷條件寫在一起?

其一,這樣就和把 message != 'quit' or message != '退出' 直接寫在 while 后面沒啥區別了;

其二,是想讓小伙伴們認識到,在真實的項目中,只要有一個條件不滿足,就可以直接把 active 置為 False ,程序會直接停止運行,因為不同的條件下邏輯可能會不一樣,代碼塊自然也會不同,所以無法把兩個 if 判斷條件寫在一起。

如果用戶輸入的既不是’quit’又不是’退出’,則程序會將用戶輸入信息原樣輸出。

Python中while循環的基本用法_第5張圖片

1.4使用break退出循環

如果你要立即退出 while 循環,不在運行循環體中余下的代碼,也不管 while 后面跟的表達式是真是假,可以使用 break 語句。

例如,我們寫個點菜程序,讓用戶輸入TA想吃的菜。在這個程序中,我們可以在用戶輸入’quit’后使用break語句立即退出 while 循環:

            
              prompt 
              
                =
              
              
                "\n請輸入您想吃的菜名:"
              
              
prompt 
              
                +=
              
              
                "\n鍵入'quit'以退出程序。"
              
              
                while
              
              
                True
              
              
                :
              
              
    food 
              
                =
              
              
                input
              
              
                (
              
              prompt
              
                )
              
              
                if
              
               food 
              
                ==
              
              
                'quit'
              
              
                :
              
              
                break
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                "我想吃"
              
              
                ,
              
               food
              
                )
              
            
          

我們將 True 作為 while 的循環判斷條件,因此這程序理論上會不斷運行下去(在沒有 break 語句的情況下)。

Python中while循環的基本用法_第6張圖片

這個程序不斷讓用戶輸入想吃的菜名,直到用戶輸入’quit’,程序執行 break 語句,退出循環。

需要注意, break 語句的作用就是跳出循環(一層循環),這在 for 循環體中也是適用的哦。

1.5在循環體中使用continue

continue的意思是繼續。

Python中使用 continue 語句跳過當前循環體中的剩余語句,然后 繼續 進行下一輪循環。

注意: continue break 的區別在于,前者跳出當前(本次)循環,而后者跳出整個循環。二者既可用于 while 也可用于 for

舉個栗子,我們來打印從1~10中的奇數。

            
              current_number 
              
                =
              
              
                0
              
              
                while
              
               current_number 
              
                <
              
              
                10
              
              
                :
              
              
    current_number 
              
                +=
              
              
                1
              
              
                if
              
               current_number 
              
                %
              
              
                2
              
              
                ==
              
              
                0
              
              
                :
              
              
                continue
              
              
                print
              
              
                (
              
              current_number
              
                )
              
            
          

小伙伴們肯定有別的打印奇數的方法,這里主要是想用循環和 continue 來實現。

先定義變量 current_number 并賦初值0,由于它小于10,Python進入 while 循環。

進入循環后,變量 current_number 在原數字上加1。

接下來, if 語句檢查 current_number 與2的求模運算結果(之前文章說過,結果為0說明是偶數,不為0說明是奇數)。

如果結果為0(偶數),就執行 continue 語句, Python會忽略余下的代碼,并返回到循環的開頭 。如果結果不為0(奇數),就執行循環體中剩余的代碼,Python將會把這個數字打印出來。

1.6無限循環

初學者經常會把循環語句寫成無限循環。

比如1~5數數:

            
              x 
              
                =
              
              
                1
              
              
                while
              
               x 
              
                <=
              
              
                5
              
              
                :
              
              
                print
              
              
                (
              
              x
              
                )
              
              
    x 
              
                +=
              
              
                1
              
            
          

程序的循環終止條件是 x<=5 ,在循環體中每次 x+=1 ,循環體執行5次以后必然不滿足循環條件,程序肯定是會正常終止的。

但我們初學者特別容易遺漏掉代碼行 x+=1 ,導致程序進入死循環,沒完沒了的運行。

            
              
                # 這個循環將不會終止
              
              
x 
              
                =
              
              
                1
              
              
                while
              
               x 
              
                <=
              
              
                5
              
              
                :
              
              
                print
              
              
                (
              
              x
              
                )
              
            
          

上面代碼 x 初始值是1,但根本不會變,所以 while 后面的循環條件永遠成立,導致程序會一直打印1。

**友情提示:**如果你不小心寫了個無限循環程序(沒人可以保證自己不會犯錯),可以按 Ctrl+C ,也可關閉顯示程序輸出的終端來終止程序。

2.結語

這段時間忙著報道,沒什么時間更新,請大家見諒啦。

上面只是介紹了 while 的基本用法,沒有涉及到對列表或字典的處理,要是大家喜歡看的話,可以掃碼關注或私信給我留言,我們下期再見bye。

Python中while循環的基本用法_第7張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日日夜夜操美女 | 日本波多野结衣在线 | 996热精品视频在线观看 | 操美女的视频网站 | 婷婷国产天堂久久综合五月 | 国产福利一区二区在线精品 | 999久久66久6只有精品 | 久久久免费视频播放 | 国产成在线人视频免费视频 | 亚洲国产精品久久久久婷婷软件 | 奇米影视在线播放 | 中文字幕视频免费 | 久久综合狠狠综合久久97色 | 久久久久无码国产精品一区 | 国产在线日韩 | 在线国产视频 | 久久久精品久久 | 97碰公开在线观看免费视频 | 免费香蕉成视频成人网 | 欧美丰满大乳大屁股毛片 | 欧美亚洲国产精品久久高清 | 国产大片免费观看中文字幕 | 国产午夜精品尤物福利视频 | 久久综合九色综合亚洲 | 91九色精品国产免费 | 国产精品你懂得 | 久久青草免费视频 | 中文国产成人精品久久久 | 国模极品一区二区三区 | 羞羞色男人的天堂伊人久久 | 天天干天天综合 | 在线观看色视频 | 中文字幕亚洲第一 | 久久国产成人福利播放 | 精品视频一区二区三区在线播放 | 国产成人久久综合热 | a亚洲欧美中文日韩在线v日本 | 奇米影视亚洲狠狠色777不卡 | 日韩亚洲精品不卡在线 | 操操碰| 久久免费成人 |