9.python while循環

  • 2020 年 3 月 12 日
  • 筆記

經過昨天的學習,相信大家已經對python的條件判斷表達式if/else有一定的了解了,那麼我們今天配合昨天的課程講解一個新概念 – while循環 。

都說程式源於生活,假如有這樣一個場景:老師要求算出1~100之間所有數字的累計求和(杠精說:5050,我百度一下就知道)。

那換個數字,你給我算出1~9977之間所有的數字累計求和,你再去百度試一試?

杠精:給我等著,兜里掏出計算器,啪啪啪,一頓狂按…..5050+100+101+102+103…

一.while循環語法:

while 判斷條件:      執行語句……

二.while循環示例:

# !usr/bin/env python  # -*- coding:utf-8 _*-  """  @Author:何以解憂  @Blog(個人部落格地址): shuopython.com  @WeChat Official Account(微信公眾號):猿說python  @Github:www.github.com    @File:while循環.py  @Time:2019/9/19 21:22     @Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!  """     a = 1  while a < 10: # 當 a >= 10 時,條件不成立      print(a)      a += 2  # 等價 a = a + 2

輸出:1 3 5 7 9,下面是詳細執行流程

分析下上面程式碼:while 之後是條件表達式,如果為真,會繼續執行while內的程式碼,執行完所有while內的程式碼又重新回到第二行,檢查 a < 10 是否成立,當a <10 條件不成立時,跳出while循環,由於循環之外沒有任何程式碼,直接退出程式。

看完上面程式碼,我們來一起完成文章開始的問題,1~9977之間所有的數字累計求和,程式碼如下:

a = 1  sum = 0  while a < 9977:      # 當a >= 9977 時條件不成立,跳出循環,      # a 的值每次加1,如果要 >= 9977 ,意味著要循環 9977 次      # print(a)      a += 1   # 等價 a = a + 1,a的值每次累計加 1      sum += a # 等價 sum = sum + a     print("while循環一共執行了 %d 次" % a)  # a 的值每次加1 ,  print("1~99777之間所有的數字累計求和的結果是:{}".format(sum))

輸出結果:

while循環一共執行了 9977 次  1~9977之間所有的數字累計求和的結果是:49775252

三.while死循環

文章看到這裡,可能有些小夥伴就有想法了,要是我條件始終成立,始終為True呢~

恭喜你,程式卡死了,退不出來了,比如下面程式碼:

while True:      print("程式啥時候結束就啥時候去吃飯")

輸出結果:

程式啥時候結束就啥時候去吃飯  程式啥時候結束就啥時候去吃飯  程式啥時候結束就啥時候去吃飯  程式啥時候結束就啥時候去吃飯  程式啥時候結束就啥時候去吃飯  .........(無限循環,直到海枯石爛,直到天荒地老,直到你禿頂)

如何解決上面死循環問題,我們留到下一篇文章繼續講解,傳送門:python教程 – 關於循環中使用break/continue

四.重點總結

while循環是python開發中必不可少的,其實使用也比較簡單,需要牢牢掌握。

Tags: