黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python中while循環(huán)的基本用法

系統(tǒng) 2529 0

Python中while循環(huán)的基本用法_第1張圖片

文 | 天罡君

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

今天我們一起來(lái)學(xué)習(xí)下 while 關(guān)鍵字的使用。

1.while循環(huán)簡(jiǎn)介

while在英語(yǔ)中的解釋是:當(dāng)…時(shí)候。

在Python中的語(yǔ)法是:

            
              
                while
              
               表達(dá)式
              
                :
              
              
    循環(huán)體

            
          

意味著,當(dāng) 表達(dá)式為True 的時(shí)候,程序會(huì)一直執(zhí)行循環(huán)體代碼, 直至表達(dá)式為False

1.1使用while循環(huán)

簡(jiǎn)單的while循環(huán)當(dāng)屬 數(shù)數(shù) 了。例如,下面的 while 循環(huán)從1數(shù)到5:

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

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

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

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

運(yùn)行結(jié)果:

            
              1
2
3
4
5

            
          

有人可能看到這會(huì)有點(diǎn)懵:已經(jīng)有 for 循環(huán)了,為啥又搞出個(gè) while 循環(huán)?

Python中while循環(huán)的基本用法_第2張圖片

注:表情包中不是python代碼

可以簡(jiǎn)單的這樣理解: for 循環(huán)主要用于那些我們知道循環(huán)次數(shù)的循環(huán),如,遍歷整個(gè)列表,我們知道循環(huán)次數(shù)就是列表中元素的個(gè)數(shù)。而 while 循環(huán)主要用于那些我們不知道具體循環(huán)多少次的循環(huán),人們常說(shuō)人生就像一個(gè)程序,寫成代碼的話,我們?nèi)松邪l(fā)生的所有事情都在 while 活著: 循環(huán)的循環(huán)體中,我們是不知道一個(gè)人到底能活多長(zhǎng)時(shí)間的,只能用 while

當(dāng)然,有些循環(huán)用 for while 都可以實(shí)現(xiàn)。

其實(shí),你每天使用的程序很可能就包含著 while 循環(huán)。例如,游戲程序就在一個(gè)大的 while 循環(huán)中,在玩家退出時(shí)停止運(yùn)行。用 while 循環(huán)能讓程序在用戶沒(méi)有讓它停止之前一直運(yùn)行,這點(diǎn)是 for 循環(huán)做不到的。

Python中while循環(huán)的基本用法_第3張圖片

1.2讓用戶選擇何時(shí)退出

可使用 while 循環(huán)讓程序在用戶愿意時(shí)不斷地運(yùn)行,當(dāng)用戶想退出時(shí)就可以隨時(shí)退出:

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

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

接下來(lái)我們創(chuàng)建了變量 message 來(lái)接收用戶輸入的內(nèi)容。Python執(zhí)行 while 語(yǔ)句時(shí),需要將 message 的值與’quit’進(jìn)行比較。如果用戶輸入的不是’quit’,程序?qū)⒋蛴〕鲇脩糨斎耄駝t將終止程序運(yùn)行。

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

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

當(dāng)我們鍵入’quit’時(shí),可以終止程序運(yùn)行:

圖1-3

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

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

我們只要讓程序在打印信息前做個(gè)簡(jiǎn)單的檢查,僅在消息不是’quit’時(shí)才打印它:

Python中while循環(huán)的基本用法_第4張圖片

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

1.3更優(yōu)雅的退出方式

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

聰明的小伙伴會(huì)說(shuō)那還不簡(jiǎn)單,我把判斷條件換成:

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

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

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

更優(yōu)雅的方式是 使用標(biāo)志 。可能有小伙伴對(duì)這個(gè)名詞感觸不深,我們直接上新鮮滾燙的代碼來(lái)感受一下。

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

我們把 active 作為標(biāo)志位,并且初始值給它True,這里肯定得是True,不然程序無(wú)法進(jìn)入循環(huán),就更別提執(zhí)行循環(huán)體代碼了。

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

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

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

其二,是想讓小伙伴們認(rèn)識(shí)到,在真實(shí)的項(xiàng)目中,只要有一個(gè)條件不滿足,就可以直接把 active 置為 False ,程序會(huì)直接停止運(yùn)行,因?yàn)椴煌臈l件下邏輯可能會(huì)不一樣,代碼塊自然也會(huì)不同,所以無(wú)法把兩個(gè) if 判斷條件寫在一起。

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

Python中while循環(huán)的基本用法_第5張圖片

1.4使用break退出循環(huán)

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

例如,我們寫個(gè)點(diǎn)菜程序,讓用戶輸入TA想吃的菜。在這個(gè)程序中,我們可以在用戶輸入’quit’后使用break語(yǔ)句立即退出 while 循環(huán):

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

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

Python中while循環(huán)的基本用法_第6張圖片

這個(gè)程序不斷讓用戶輸入想吃的菜名,直到用戶輸入’quit’,程序執(zhí)行 break 語(yǔ)句,退出循環(huán)。

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

1.5在循環(huán)體中使用continue

continue的意思是繼續(xù)。

Python中使用 continue 語(yǔ)句跳過(guò)當(dāng)前循環(huán)體中的剩余語(yǔ)句,然后 繼續(xù) 進(jìn)行下一輪循環(huán)。

注意: continue break 的區(qū)別在于,前者跳出當(dāng)前(本次)循環(huán),而后者跳出整個(gè)循環(huán)。二者既可用于 while 也可用于 for

舉個(gè)栗子,我們來(lái)打印從1~10中的奇數(shù)。

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

小伙伴們肯定有別的打印奇數(shù)的方法,這里主要是想用循環(huán)和 continue 來(lái)實(shí)現(xiàn)。

先定義變量 current_number 并賦初值0,由于它小于10,Python進(jìn)入 while 循環(huán)。

進(jìn)入循環(huán)后,變量 current_number 在原數(shù)字上加1。

接下來(lái), if 語(yǔ)句檢查 current_number 與2的求模運(yùn)算結(jié)果(之前文章說(shuō)過(guò),結(jié)果為0說(shuō)明是偶數(shù),不為0說(shuō)明是奇數(shù))。

如果結(jié)果為0(偶數(shù)),就執(zhí)行 continue 語(yǔ)句, Python會(huì)忽略余下的代碼,并返回到循環(huán)的開(kāi)頭 。如果結(jié)果不為0(奇數(shù)),就執(zhí)行循環(huán)體中剩余的代碼,Python將會(huì)把這個(gè)數(shù)字打印出來(lái)。

1.6無(wú)限循環(huán)

初學(xué)者經(jīng)常會(huì)把循環(huán)語(yǔ)句寫成無(wú)限循環(huán)。

比如1~5數(shù)數(shù):

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

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

但我們初學(xué)者特別容易遺漏掉代碼行 x+=1 ,導(dǎo)致程序進(jìn)入死循環(huán),沒(méi)完沒(méi)了的運(yùn)行。

            
              
                # 這個(gè)循環(huán)將不會(huì)終止
              
              
x 
              
                =
              
              
                1
              
              
                while
              
               x 
              
                <=
              
              
                5
              
              
                :
              
              
                print
              
              
                (
              
              x
              
                )
              
            
          

上面代碼 x 初始值是1,但根本不會(huì)變,所以 while 后面的循環(huán)條件永遠(yuǎn)成立,導(dǎo)致程序會(huì)一直打印1。

**友情提示:**如果你不小心寫了個(gè)無(wú)限循環(huán)程序(沒(méi)人可以保證自己不會(huì)犯錯(cuò)),可以按 Ctrl+C ,也可關(guān)閉顯示程序輸出的終端來(lái)終止程序。

2.結(jié)語(yǔ)

這段時(shí)間忙著報(bào)道,沒(méi)什么時(shí)間更新,請(qǐng)大家見(jiàn)諒啦。

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

Python中while循環(huán)的基本用法_第7張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論