一、程序的三大流程
- 順序 從上到下順序執(zhí)行代碼
- 分支 根據(jù)條件判斷決定執(zhí)行代碼的分支
-
循環(huán) 讓特定代碼重復(fù)執(zhí)行
流程圖簡示:
image
二、while循環(huán)的基本應(yīng)用
- while語句基本語法句式:
初始條件設(shè)置
while 條件:
條件滿足時執(zhí)行的代碼
條件滿足時執(zhí)行的代碼
條件滿足時執(zhí)行的代碼
......
處理條件 計數(shù)器加一 - 寫一個簡單的while循環(huán),打印5次"早盦呀是個很棒的UP主":
# 寫好初始條件
i = 1
# 開始循環(huán)
while i <= 5:
# 滿足條件后執(zhí)行的代碼
print("早盦呀是個很棒的UP主")
# 處理計數(shù)器
i += 1
執(zhí)行一下結(jié)果:

image
注意python的代碼規(guī)范
- 試著寫一個使用while循環(huán)計算0-100求和
# 定義最終結(jié)果的變量
sum = 0
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
i = 0
# 開始循環(huán)
while i <= 100:
sum += i
# 處理計數(shù)器
i += 1
print('0到100間的和為: %d' % sum)
調(diào)試一下并驗證結(jié)果

image
- 使用while循環(huán)計算0-100間偶數(shù)的和
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
i = 0
# 開始循環(huán)
while i <= 100:
# 使用嵌套if做偶數(shù)的判斷
if i % 2 == 0:
sum += i
# 處理計數(shù)器
i += 1
print('0到100間的所有偶數(shù)的和為: %d' % sum)
再進行驗證

image
要注意代碼的規(guī)范與運算符的使用等,總之要細心
三、break和continue
- break 表示停止當前循環(huán)
- continue 表示跳過當前循環(huán)輪次去執(zhí)行下一輪循環(huán)
為更詳細了解倆者的區(qū)別,可試著完成“逢七跳過”的游戲
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
i = 0
# 開始循環(huán)
while i <= 100:
# 構(gòu)思帶七及含七倍數(shù)的數(shù)字特點,把他們都找到
if (i % 7 == 0
or i % 10 == 7
or i // 10 == 7):
# 處理計數(shù)器,這里至關(guān)重要,如果不存在這個計數(shù)器會造成死循環(huán)
i += 1
# 使用continue跳過所有帶七及含七倍數(shù)的數(shù)字
continue
# 把其他情況打印出來
else:
print(i)
# 處理計數(shù)器
i += 1

image
相對于while循環(huán),這里使用for循環(huán)會更容易一些,但要引用range()函數(shù)
for i in range(1, 101):
if (i % 7 == 0
or i % 10 == 7
or i // 10 == 7):
continue
else:
print(i)
可自行嘗試使用并觀察
簡單修改一下條件并使用break:
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
i = 0
# 開始循環(huán)
while i <= 100:
# 構(gòu)思帶七及含七倍數(shù)的數(shù)字特點,把他們都找到
if i == 7:
# 處理計數(shù)器,這里至關(guān)重要,如果不存在這個計數(shù)器會造成死循環(huán)
i += 1
# 使用continue跳過所有帶七及含七倍數(shù)的數(shù)字
break
# 把其他情況打印出來
else:
print(i)
# 處理計數(shù)器
i += 1

image
可以看到在滿足條件后,break變終止了循環(huán)。
四、打印九九乘法表
這里會涉及使用嵌套循環(huán)、print()函數(shù)擴展知識、內(nèi)循環(huán)與外循環(huán)搭配等......
先練習(xí)打印九行小
*
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
row = 1
# 開始外循環(huán)打印列
while row <= 9:
# 確定內(nèi)循環(huán)打印行
col = 1
while col <= row:
# 這里用到print()函數(shù)擴展,print("",end="連接下一行的內(nèi)容")這樣寫可做到不自動換行
print("*",end="")
col += 1
# 因為上一個print()函數(shù)內(nèi)已包含end=的用法,所以這里為避免所輸出的內(nèi)容在同一行要加print("")做換行處理
print("")
# 處理計數(shù)器
row += 1

image
完成九九乘法表的書寫:
# 定義一個整數(shù)的變量記錄循環(huán)的次數(shù)
row = 1
# 開始外循環(huán)打印列
while row <= 9:
# 確定內(nèi)循環(huán)打印行
col = 1
while col <= row:
# 這里用到print()函數(shù)擴展,print("",end="連接下一行的內(nèi)容")這樣寫可做到不自動換行
# print("*",end="")
# 九九乘法表變身
print("%d * %d = %d " % (col,row,row*col), end=" ")
col += 1
# 因為上一個print()函數(shù)內(nèi)已包含end=的用法,所以這里為避免所輸出的內(nèi)容在同一行要加print("")做換行處理
print("")
# 處理計數(shù)器
row += 1
這樣我們就獲得了一個九九乘法表的代碼,仔細觀察打印*與打印乘法表的代碼,區(qū)別只是改了一行代碼,乘法表使用列號乘以行號才完成實現(xiàn)的,為了輸出美觀,要注意end=" "中以空格分開列

image
但是細心的人會發(fā)現(xiàn)我們打印出的乘法表存在對不齊的情況,所以要進一步完善一下
要保證每一列都能對齊,我們要引用轉(zhuǎn)義符、換行符
- \t 表示控制臺輸出一個制表符,協(xié)助文本能夠垂直對齊
- \n 表示控制臺輸出一個換行符
下面做簡單演示:
print("1\t2\t3")
print("10\t20\t30")

image
通過思考我們可以準確的找到需要修改的地方是print("%d * %d = %d " % (col,row,row*col), end=" "),最終修改為: print("%d * %d = %d " % (col,row,row*col), end="\t")
