Python學習07:while循環語句的用法

筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 筆者原創,文章歡迎轉載,如果喜歡請點贊+關注,感謝支持!


說在前面:最近工作和學習原因,《Python學習系列》更新及其緩慢,還請親愛的讀者們多多海涵!

 

 

目錄

1. for循環和while循環的區別

2. while循環的結構

3. 中斷循環

4. while循環實戰


while循環語句的用法

上一講中主要研究了for循環語句的介紹和實戰訓練,這一講主要是對while循環語句的講解。

1. for循環和while循環的區別

先通過for循環和while循環的簡單的例子,直觀的感受下兩個循環的區別:

#for循環
for number in range(0,7):
    print('Number is:',number)
Number is: 0
Number is: 1
Number is: 2
Number is: 3
Number is: 4
Number is: 5
Number is: 6
#while循環
count = 0
while (count < 7):
    print("The count is:",count)
    count = count + 1
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
over

同樣是循環數字0~6,但明顯看到兩個循環的不一樣

例子1中for循環是將1~6範圍內遍歷後循環打印出來,全部執行(打印)完,再結束。

而例子2的while循環中,count值每次循環都會加1,直到不滿足while循環條件時,也就是當count等於7時,count < 7的結果爲false,此時跳出while循環,結束。

總結:for循環是在序列窮盡時停止,而while循環是在循環條件不成立時停止。

while循環,表達式是一個邏輯表達式,必須返回一個True或False,直到表達式變爲假,才退出。

說白了,while循環條件如果一直成立,那麼就一直執行循環!

死循環:

#while循環
number = 10
while number > 0:
    print('當前變量值:', number)
print("循環結束")
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 10
當前變量值: 

2. while循環的結構

while 判斷條件:
    執行語句

while循環執行語句可以是單個語句語句塊

判斷條件可以是任何表達式,任何非零、或非空(null)的值均爲True。

當判斷條件爲 False 時,循環結束。

#while循環的結構
number = 0
while number < 7:
    number += 1
    print(number)
print('循環結束')

從上面這個簡單的例子可以明顯看到while循環的結構:

1.先聲明一個變量,賦值爲0;

2.while + 判斷條件,這裏的判斷條件我是用的邏輯運算符<;

3.判斷條件後要加冒號:作爲結束;

4.執行語句中number累計遞增+1;

5.打印變量number的值;

6.如果結果爲True,再重複執行while循環,先判斷number是否小於7,小於7的話繼續執行循環;

7.直到number累計增加到7的時候,此時不滿足<7的條件,跳出循環;

8.執行循環結束的打印。

 

3. 中斷循環

通常循環會不斷的執行代碼塊,直到條件爲假或使用完序列中的所有元素。那麼我們如何中斷循環並開始新迭代(進入‘下一輪’代碼塊執行流程)或直接結束循環?

這裏我們會用到:

break

break的中文就是打斷、間斷、休息等意思。如果要結束(跳出)循環,使用break。

#while循環break用法
count = 0
while (count < 7):
    print("The count is:",count)
    count = count + 1
    # 當count循環到3時,跳出循環
    if count > 3:
        break
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
over

可以看到當count循環到3的時候,if從句中執行了break,跳出了while循環。

#for循環break用法
for number in range(0,7):
    print('Number is:',number)
    #當nuemeber等於3的時候跳出循環
    if number == 3:
        break
Number is: 0
Number is: 1
Number is: 2
Number is: 3

continue

中文意思是繼續,用於跳過該次循環。

舉例:打印字符串'Python',如果字符爲h的時候,跳過該次循環:

#while循環continue用法
for letter in 'Python':  
    if letter == 'h':
        continue
    print('當前字母 :', letter)
當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : o
當前字母 : n

通過上面的例子可以明顯看到continue的用法,再舉個例子更清晰看到用法:

#while循環
number = 10 
while number > 0:
    number = number - 1
    if number == 5:
        continue
    print('當前變量值 :', number)
print("循環結束")
當前變量值 : 9
當前變量值 : 8
當前變量值 : 7
當前變量值 : 6
當前變量值 : 4
當前變量值 : 3
當前變量值 : 2
當前變量值 : 1
當前變量值 : 0
循環結束

總結:continue 語句跳出本次循環,而break跳出整個循環。

 

4. while循環實戰

說再多的理論,不如實際操作來的爽,下面講解幾個循環實戰。

  • 企業發放的獎金根據利潤提成,利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分可提成7.5%;20萬元到40萬元之間時,高於20萬元的部分可提成5%;40萬元到60萬元之間時,高於40萬元的部分可提成3%;60萬元到100萬元之間時,高於60萬元的部分可提成1.5%;高於100萬元時,超過100萬元的部分按1%提成。計算給定的利潤I,應發獎金總數。
#利用數組和循環
#定義利潤列表
money = [1000000,600000,400000,200000,100000,0]
#定義提成比例列表,與利潤列表一一對應
percent = [0.01,0.015,0.03,0.05,0.075,0.1]
while True:
    #獲取用戶輸入
    i = input('請輸入利潤(退出請按q):')
    if i == 'q':
        #退出程序
        exit(0)
        #如果不是數字,重新開始循環,重新輸入數據
        if not i.isdigit():
            continue
    #定義一個空的獎金列表,存放每一取間計算的獎金
    reward = []
    print('獎金爲:',end='')
    I = int(i)
    for x in range(0,6):
        if I > money[x]:
            #將每一個區間的獎金存放在獎金列表中,
            reward.append((I - money[x]) * percent[x])
            I = money[x]
        #逆序獎金列表,目的爲方便輸出
        reward.reverse()
        #如果只有一個,直接輸出
    if (len(reward)) == 1:
        print(reward[0])
    else:
        #輸出每個取間的獎金,並求和
        print('+ '.join([str(num) for num in reward]),'=',sum(reward))

運行結果:

請輸入利潤(退出請按q):10000000
獎金爲:10000.0+ 10000.0+ 6000.0+ 90000.0+ 6000.0+ 7500.0 = 129500.0
請輸入利潤(退出請按q):90000
獎金爲:9000.0
請輸入利潤(退出請按q):1234546
獎金爲:10000.0+ 10000.0+ 6000.0+ 2345.46+ 6000.0+ 7500.0 = 41845.46
請輸入利潤(退出請按q):43
獎金爲:4.3
請輸入利潤(退出請按q):1
獎金爲:0.1
請輸入利潤(退出請按q):2134557
獎金爲:10000.0+ 10000.0+ 6000.0+ 11345.57+ 6000.0+ 7500.0 = 50845.57
請輸入利潤(退出請按q):q

Process finished with exit code 0

更多while、for循環的組合用法會在後續學習實例中詳細講解,還請持續關注《Python學習》系列的更新,點贊關注走一波~

 


以上便是《Python學習07講》的所有內容,更多python學習請繼續關注我的博客——風起怨江南(傳送門,不定期更新,原創不易,如果喜歡請點贊和關注,謝謝大家的支持!

獲得更多免費的學習資料請添加微信公衆號——風起怨江南,謝謝大家的關注和支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章