說起回圈,發一張圖,不知道能不能勾起大家小時候的回憶,

回圈就是讓指定的代碼重復地執行,
python 中的 while 陳述句用于回圈執行程式,即在某條件下,回圈執行某段程式,以處理需要重復處理的相同任務,
當要求你在頁面上列印5遍“Hello Python”,你可以寫5行 print代碼,但是如果要求列印100行,1000行呢,這時就要使用 while 陳述句了,
一、while 陳述句基本語法
while 判斷條件(condition):
執行陳述句(statements)……
執行陳述句可以是單個陳述句或陳述句塊,
判斷條件可以是任何運算式,任何非零、或非空(null)的值均為true,
while 陳述句執行的具體流程為:首先判斷條件運算式的值,其值為真(True)時,則執行代碼塊中的陳述句,當執行完畢后,再回過頭來重新判斷條件運算式的值是否為真,若仍為真,則繼續重新執行代碼塊...如此回圈,直到條件運算式的值為假(False),才終止回圈,
流程圖如下

實體:列印 5 遍 Hello Python
# 1. 定義重復次數計數器
i = 1
# 2. 使用 while 判斷條件
while i <= 5:
# 要重復執行的代碼
print("Hello Python")
# 處理計數器 i
i = i + 1
這里特別強調一點,絕對不能忘記在回圈內部增加修改回圈的判斷條件,否則就會出現的死回圈現象,
再說明一個計數的習慣問題,人類的習慣都是從1開始計數,但幾乎所有的程式中都習慣從0開始計數,
因此大家盡量養成習慣吧:除非是需求的特殊要求,否則回圈的計數都從 0 開始,
二、賦值運算子
在 Python 中,使用 = 符號可以給變數賦值,
在算術運算時,為了簡化代碼的撰寫,Python 還提供了一系列的與算術運算子對應的賦值運算子,
| 運算子 | 描述 | 實體 |
|---|---|---|
| = | 簡單的賦值運算子 | c = a + b 將 a + b 的運算結果賦值為 c |
| += | 加法賦值運算子 | c += a 等效于 c = c + a |
| -= | 減法賦值運算子 | c -= a 等效于 c = c - a |
| *= | 乘法賦值運算子 | c *= a 等效于 c = c * a |
| /= | 除法賦值運算子 | c /= a 等效于 c = c / a |
| //= | 取整除賦值運算子 | c //= a 等效于 c = c // a |
| %= | 取模(余數)賦值運算子 | c %= a 等效于 c = c % a |
| **= | 冪賦值運算子 | c **= a 等效于 c = c ** a |
注意:賦值運算子中間不能使用空格,
下面來2個實體鞏固下知識,
計算 0 ~ 100 之間所有數字的累計求和結果
# 定義最終結果的變數
result = 0
# 定義一個整數的變數記錄回圈的次數
i = 0
# 開始回圈
while i <= 100:
# 每一次回圈,都讓 result 這個變數和 i 這個計數器相加
result += i
# 處理計數器
i += 1
print("0~100之間的數字求和結果 = %d" % result)
計算 0 ~ 100 之間 所有 偶數 的累計求和結果
# 定義一個記錄最終結果的變數
result = 0
i = 0
while i <= 100:
# 判斷變數 i 中的數值,是否是一個偶數
# 偶數 i % 2 == 0
# 奇數 i % 2 != 0
if i % 2 == 0:
# 當 i 這個變數是偶數時,才進行累加操作!
result += i
i += 1
print("0~100之間的偶數累加結果 = %d" % result)
三、回圈中使用 else 陳述句
在 python 中,while … else 在回圈條件為 false 時執行 else 陳述句塊:
實體:
count = 0
while count < 5:
print("%d is less than 5" % count)
count = count + 1
else:
print("%d is not less than 5" % count)
以上實體輸出結果為:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
四、回圈的終止 break 和 continue
break 和 continue 是專門在回圈中終止回圈操作所使用的關鍵字,
break:某一條件滿足時,退出整個回圈,不再執行所有后續重復的代碼,
實體
i = 0
while i < 10:
# break 某一條件滿足時,退出回圈,不再執行后續重復的代碼
# i == 3
if i == 3:
break
print(i)
i += 1
print("over")
continue:某一條件滿足時,跳出本次回圈,不執行本次回圈后續的代碼,但不會終止整個回圈,
實體
i = 0
while i < 10:
# 當 i == 7 時,不希望執行需要重復執行的代碼
if i == 7:
# 在使用 continue 之前,同樣應該修改計數器
# 否則會出現死回圈
i += 1
continue
# 重復執行的代碼
print(i)
i += 1
break 和 continue 只針對當前所在小回圈有效,即如果出現回圈嵌套,只能跳出 break 或 continue 所處的那個回圈,
五、回圈嵌套
回圈嵌套就是 while 陳述句里面還有 while,
while 條件 1:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
while 條件 2:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
處理條件 2
處理條件 1
實體:輸出五行 *,每一行星號的數量依次遞增,
原來的方法:
row = 1
while row <= 5:
print("*" * row)
row += 1
回圈嵌套的方法:
# 每行顯示的星星和當前所在的行數是一致的
# 嵌套一個小的回圈,專門處理每一行中列的星星顯示,
row = 1
while row <= 5:
# 在回圈內部,再增加一個回圈,實作每一行的 星星 列印
col = 1
while col <= row:
print("*", end="")
col += 1
# 每一行星號輸出完成后,再增加一個換行
print("")
row += 1
print的知識點
在默認情況下,print 函式輸出內容之后,會自動在內容末尾增加換行,
如果不希望末尾增加換行,可以設定 print 函式的第2個引數 end 為空,
語法格式如下:
# 向控制臺輸出內容結束之后,不會換行
print("*", end="")
# 單純的換行
print("")
實體:列印九九乘法表
# 定義起始行
row = 1
# 最大列印 9 行
while row <= 9:
# 定義起始列
col = 1
# 最大列印 row 列
while col <= row:
# end = "",表示輸出結束后,不換行
# "\t" 可以在控制臺輸出一個制表符,協助在輸出文本時對齊
print("%d * %d = %d" % (col, row, row * col), end="\t")
# 列數 + 1
col += 1
# 一行列印完成的換行
print("")
# 行數 + 1
row += 1
補充知識:轉義符
ASCII 編碼為每個字符都分配了唯一的編號,稱為編碼值,
在 Python 中,一個 ASCII 字符除了可以用它的物體(也就是真正的字符)表示,還可以用它的編碼值表示,這種使用編碼值來間接地表示字符的方式稱為轉義字符(Escape Character),
轉義字符以\0或者\x開頭,以\0開頭表示后跟八進制形式的編碼值,以\x開頭表示后跟十六進制形式的編碼值,Python 中的轉義字符只能使用八進制或者十六進制,具體格式如下:
\0dd
\xhh
# dd 表示八進制數字,hh 表示十六進制數字,
直接接使用 ASCII 碼記憶不方便,也不容易理解,所以,針對常用的控制字符,又定義了簡寫方式,完整的串列如下,
| 轉義字符 | 描述 |
|---|---|
| \\ | 反斜杠符號 |
| \' | 單引號 |
| \" | 雙引號 |
| \n | 換行符,將游標位置移到下一行開頭 |
| \t | 水平制表符,也即 Tab 鍵,一般相當于四個空格 |
| \r | 回車符,將游標位置移到本行開頭 |
| \b | 退格(Backspace),將游標位置移到前一列 |

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/65162.html
標籤:Python
