(5)while循環
阿新 • • 發佈:2019-05-01
升級 flag 程序運行一次 寫法 循環 als 自己 效率 真的
循環結構 : while
循環結構的特點:減少代碼的冗余,提高代碼的效率
註意:只要是循環一定要有判斷條件退出循環,不然就成了死循環,程序會一直在內存執行,直到內存耗盡,暴斃.....
語法形式:
while 條件表達式:
code1
code2
(一)打印數字1~10
i = 1 # 定義一個初始化的變量
# 寫一個循環的條件
while i <= 10:
# 代碼體,寫邏輯
print(i)
i += 1 # 程序每跑一遍,i就+1,直到1=10,循環停下來
執行結果:
1
2
3
4
5
6
7
8
9
10
(二) 計算1~100的累加和 ?
寫法一:
i = 1
total = 0
while i <= 100:
total += i
i += 1
print(total)
執行結果:
5050
寫法二: i = 1 total = 0 # 初始化一個變量 flag = True # 寫一個標誌符 while flag: # 只有為真的時候才會循環 total += i i += 1 # 當i位101的時候,為了避免在回到循環判斷中,直接在此處終止 if i == 101: flag = False # 更改標誌符狀態 print(total) 執行結果: 5050 (三)打印一行十個小星星 (1)最簡單的方法:功能的確實現了,但是看起來比較low print("*"*10) 執行結果: ********** (2)升級版:用循環寫 i = 0 while i < 10: print("*", end="") # end=‘‘以什麽結尾,這裏以空制符串結尾,保證星星不會換行,打印在一排 i += 1 執行結果: ********** (3)進階版: i = 0 strvar = ‘‘ while i < 10: strvar += "*" i += 1 print(strvar) 執行結果: ********** (四)while和if的混合使用 (1)要求:打印一行十個小星星 奇數個打印★ 偶數個打印☆ i = 0 while i < 10: if i % 2 == 0: print("★", end="") else: print("☆", end="") i += 1 執行結果: ★☆★☆★☆★☆★☆ (2)要求:一個循環 打印十行十列隔列變色小星星 i = 0 while i < 100: if i % 2 == 0: print("☆", end="") else: print("★", end="") if i % 10 == 9: # 換行,i是從0開始的,i逢9就要開始換行 print() i += 1 執行結果: ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★ (五)while循環的嵌套(多個while循環) (1)用兩個循環打印十行十列變色小星星 i = 0 while i < 10: # 外循環 j = 0 while j < 10: # 內循環 if i % 2 == 0: # 控制行 print("★", end="") else: print("☆", end="") j += 1 # 程序運行一次,j+1,一直滿足內循環,所以外循環走一次,內循環走十次 print() # 換行,外面的循環每執行一次,就打印一個換行 i += 1 執行結果: ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ (2)打印99乘法口訣表 i = 1 while i <= 9: j = 1 while j <= i: print("%d*%d=%-2d" % (j, i, i * j), end=" ") # end這裏有空格 j += 1 print() # 換行 i += 1 執行結果:是不是beautiful 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 作業:自己下去試一下99乘法口訣的其他打發,比如,方向相反的乘法口訣
(5)while循環