for 循環: 重復執行語句。在循環次數已知時使用for循環,且所有for循環均可用while循環實現。
while 循環 :在給定的判斷條件為 true 時執行循環體,否則退出循環體。在循環次數未知時使用while循環。
嵌套循環: 循環體中嵌套循環
#while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。 # 其中,執行語句可以是單個語句或語句塊; # 判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true #while 判斷條件: # 執行語句 #理解循環代碼案例 #輸出1~20 '''num = 1 while num<=20: print(num) num += 1''' #重復撥打一個電話號碼100次 '''i = 0 while i<100: print('撥打電話18200001111') i +=1''' #一般情況下,需要多次重復執行的代碼,可以使用循環的方式來完成 #循環不是必須要使用的,但是為了提高代碼的重復使用,一般有經驗的開發者都采用循環 #while的循環格式 #while 條件: # 條件滿足是,做的事情1 # 條件滿足是,做的事情2 # 條件滿足是,做的事情3 # ...(省略)... #打印下標從1開始 '''i =0 while i<6: print('當前是第%d次執行循環'%(i+1)) print('i=%d'%i) i +=1''' # while 循環注意事項:“i += 1”別忘記寫,否則條件永遠滿足,一直執行 #***while 循環應用案例 #1、計算1~100的累計和(包含1和100) '''i = 1 #定義變量i為1 sum =0 #定義變量總和sum為0 while i <=100: # 判斷條件i小於等於100 sum =sum+i #sum等於sum+i,遍歷一次加一次 i+=1 #i=i+1 print("1~100的累計和為:%d"%sum) #輸入1~100的累計和''' #2、計算1~100之間的偶數的累積和(包含1和100) '''i =1 #定義變量i sum =0 #定義變量sum(累計和) while i<=100: if i%2==0: #如果i除以2等於0 sum=sum+i i+=1 print("1~100偶數的累計和為:%d"%sum)''' #3、打印1-100以內所有3和5的倍數、3的倍數以及5的倍數 '''num =1 bei3_5=[] bei3=[] bei5=[] while num<=100: if(num%3==0)and(num%5==0): bei3_5.append(num) elif num%3==0: bei3.append(num) elif num%5==0: bei5.append(num) num+=1 else: print('1-100內是3和5的倍數有:',bei3_5) print('1-100內是3的倍數有:',bei3) print('1-100內是5的倍數有:',bei5) print('循環結束')''' #循環結果如下: #1-100內是3和5的倍數有: [15, 30, 45, 60, 75, 90] #1-100內是3的倍數有: [3, 6, 9, 12, 18, 21, 24, 27, 33, 36, 39, 42, 48, 51, 54, 57, 63, 66, 69, 72, 78, 81, 84, 87, 93, 96, 99] #1-100內是5的倍數有: [5, 10, 20, 25, 35, 40, 50, 55, 65, 70, 80, 85, 95, 100] #循環結束 #for循環和while循環,兩者的相同點在於都能循環做一件重復的事情; # 不同點在於: # for循環是在序列窮盡時停止, # while循環是在條件不成立時停止。 # while 循環嵌套:就是while里面還有while; #也可以在循環體內嵌入其他的循環體; # 如在 while 循環中可以嵌入 for 循環, # 反之,你可以在 for 循環中嵌入 while 循環。 #while循環嵌套格式 #while1 判斷條件: # 條件1滿足是,做的事情1 # 條件1滿足是,做的事情2 # 條件1滿足是,做的事情3 # ...(省略)... # while2 判斷條件: # 條件2滿足是,做的事情1 # 條件2滿足是,做的事情2 # 條件2滿足是,做的事情3 # ...(省略)... #1、while嵌套應用--打印矩形 # ***** # ***** # ***** # ***** # ***** '''#(1)while循環打印矩形 i = 1 while i<=5: print('*****') i+=1 ''' '''#(2)while嵌套打印矩形 i=1 while i<=5: #判斷條件;外層控制行數 j =1 while j<=5:#判斷條件,;內層控制列數 print('*',end='') j+=1#1 2 3 4 5 #切成為5個星號一行 print('') i+=1 ''' '''#2、while嵌套應用--打印三角形 # * # * * # * * * # * * * * # * * * * * #只要把打印矩形的基礎上把內部的while 循環的條件有j<=5修改成j<=i即可。 i=1 while i<=5: #判斷條件;外層控制行數 j =1 while j<=i:#判斷條件,i有幾個就打印幾個j;內層控制列數 print('*',end='') j+=1 print('') i+=1 ''' ''' #2、while嵌套應用--打印三角形擴展 i=1 while i<=5: num = int(input('請輸入這行打印多少個:')) j=1 while j<=num: print('*',end='') j+=1 print('') i+=1 else: #print('打印三角形失敗') print('打印三角形成功') ''' #3、while 循環嵌套while循環---打印九九乘法表 '''i=1 while i<=9: j =1 while j<=i:#內層控制列,需要j<=i,才可以打印出99乘法表,要不打印錯誤 print("%d*%d=%d\t" %(j,i,j*i),end='')#\t添加制表符 j+=1 print('') i+=1 ''' #運用結果: #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 '''i=j=1 while i<=9:#外層控制行, while j<=i:#內層控制列,需要j<=i,才可以打印出99乘法表,要不打印錯誤 print(i,"*",j,"=",j*i,end='\t')#\t添加制表符 j+=1 print() i+=1 j=1 ''' #運行結果: #1 * 1 = 1 #2 * 1 = 2 2 * 2 = 4 #3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 #4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 #5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 #6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 #7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 #8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 #9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 '''#4、打印1~100之間的偶數 #思路:while 循環嵌套if判斷語句,代碼如下: i=1 while i<=100: if i%2==0:# 如果除等於0,可以打印偶數 print('i==%d'%i) i+=1 ''' '''#5、打印1~100之間的奇數 i=1 while i<=100: if i%2==1:#如果除等於1,可以打印奇數 print('i==%d'%i) i+=1 ''' #猜數字小游戲 #要求:產生一個隨機數字1~100之間,接受用戶輸入; #如果猜對了,游戲結束;猜大了,提示猜大了;猜小了,提示猜小了。 #產生隨機數模塊使用random。randint(1,101),是一個標准包, #導入使用即可。 import random sub_str=random.randint(1,101)#生成1~100的一個隨機數 sub_str=66 while 1: #判斷條件為1,就是讓它一直為真,也就是歲循環,下面通過break來強制停止; num =int(input('請輸入一位隨機數字:')) if num > 100 or num <1: #判斷輸入的數字是否在1~100之間 print('輸入隨機數錯誤,請輸入1~100之前的隨機數') continue#繼續執行 else: if num == sub_str:#如果猜對了,結束循環 print('猜對了,游戲結束%d'%sub_str)#%d 字符串格式化輸出 break #強制停止 elif num < sub_str:#如果猜小了,就跳出本次循環,提示猜小了 print('猜小了,請重新輸入數字') continue#繼續執行 else: #否則財大了,就提示財大了。就三種情況大,小,等於;前面兩種是等於個小於,這個else就是大於。 print('猜大了,請重新輸入數字') continue#繼續執行