python教程:循环(while和for)
一.循環(huán)簡介:
循環(huán)的作用:讓代碼更高效的重復執(zhí)行
分類:while和for兩種,最終實現(xiàn)的效果相同
二.while的語法:
while 條件:條件成立重復執(zhí)行的代碼1條件成立重復執(zhí)行的代碼2.....................................快速體驗:
-
需求:復現(xiàn)重復執(zhí)行100次print(‘媳婦,我錯了’),為了輸出簡介,這里輸出5次
-
分析:初始值是0,重點是5次,重復做的事情是輸出‘媳婦我錯了’。
三.while的應(yīng)用
應(yīng)用一:計算1–100累加和
分析:1-100的累加和,即1+2+3+4....,即前兩個數(shù)字的相加結(jié)果+下一個數(shù)字(前一個數(shù)字+1)
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' i = 1 result = 0 while i <= 100:result += ii += 1 print(result)為了驗證程序的準確性,可以先改小數(shù)值,驗證結(jié)果正確后,再改成1-100做累加。
應(yīng)用二:計算1–100偶數(shù)累加和
分析:1-100的偶數(shù)和,即2+4+6+8…得到偶數(shù)的方法如下:
-
偶數(shù)即是和2取余結(jié)果為0的數(shù)字,可以加入條件語句判斷是否為偶數(shù),為偶數(shù)則累加
-
初始值0/2,計數(shù)器每次累加2
方法一:條件判斷和2取余數(shù)則累加
#方法一:條件判斷和2取余數(shù)為0則累加計算 i = 0 result = 0 while i <= 100:if i % 2 == 0:result += ii += 1 #輸出2550 print(result)方法二:計數(shù)器控制
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' i = 0 result = 0 while i <= 100:result += ii += 2 #輸出2550 print(result)四.break和continue
break和continue是循環(huán)中滿足一定條件退出循環(huán)的兩種不同方式
理解:break是終止次循環(huán),continue退出當前循環(huán)而執(zhí)行下一個循環(huán)
情況一:break
i = 1 while i <= 5:if i == 4:print(f'吃飽了不吃了')breakprint(f'吃了第{i}個蘋果')i += 1結(jié)果如圖所示:
情況二:continue
五.while循環(huán)嵌套
語法:
while 條件1:條件1成?立執(zhí)?行行的代碼......while 條件2:條件2成?立執(zhí)?行行的代碼......總結(jié):所謂while循環(huán)嵌套,就是一個while里面嵌套一個while的寫法,每個while和之前的基礎(chǔ)語法是相同的。
j = 0 while j < 3:i = 0while i < 3:print('媳婦兒,我錯了')i += 1print('刷晚飯的碗')print('一套懲罰結(jié)束----------------------')j += 1執(zhí)行結(jié)果:
理解執(zhí)行流程:
六.while循環(huán)嵌套應(yīng)用
應(yīng)用一:打印星號(正方形)
需求
********* ********* ********* ********* ********* *********代碼:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # 重復打印5?行行星星 j = 0 while j <= 4:# ?一?行行星星的打印i = 0while i <= 4:# ?一?行行內(nèi)的星星不不能換?行行,取消print默認結(jié)束符\nprint('*', end='')i += 1# 每?行行結(jié)束要換?行行,這?里里借助?一個空的print,利利?用print默認結(jié)束符換?行行print()j += 1應(yīng)用二:打印星號(三角形)
需求
* ** *** **** *****代碼:
分析:?行輸出星星的個數(shù)和?號是相等的,每?:重復打印行號數(shù)字個星號,將打印行星號的命令重
復執(zhí)?5次實現(xiàn)打印5?。
九九乘法表
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # 重復打印9?行行表達式 j = 1 while j <= 9:# 打印?行?面的表達式 a * b = a*bi = 1while i <= j:print(f'{i}*{j}={j*i}', end='\t')i += 1print()j += 1七.for循環(huán)
語法:
for 臨時變量 in 序列列:重復執(zhí)行的代碼1重復執(zhí)行的代碼2......快速體驗:
str1 = 'qwertyui' for i in str1:print(i)執(zhí)行結(jié)果:
Break
執(zhí)行結(jié)果:
continue
執(zhí)行結(jié)果:
八.else
循環(huán)可以和else配合使?用,else下方縮進的代碼指的是當循環(huán)正常結(jié)束之后要執(zhí)行的代碼
1.while …else
語法:
while 條件:條件成?立重復執(zhí)?的代碼 else:循環(huán)正常結(jié)束之后要執(zhí)?的代碼示例:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' i = 1 while i <= 5:print('媳婦?,我錯了了')i += 1 else:print('媳婦原諒我了,真開心,哈哈哈哈')執(zhí)行結(jié)果:
2.退出循環(huán)的方式
break
i = 1 while i <= 5:if i == 3:print('這遍說的不真誠')breakprint('媳婦兒,我錯了')i += 1 else:print('媳婦原諒我了,真開心,哈哈哈哈')執(zhí)行結(jié)果:
所謂else指的是循環(huán)正常結(jié)束之后要執(zhí)行的代碼,即如果是break終?循環(huán)的情況,else下方縮進
的代碼將不執(zhí)行。
continue
i = 1 while i <= 5:if i == 3:print('這遍說的不真誠')i += 1continueprint('媳婦兒,我錯了')i += 1 else:print('媳婦原諒我了,真開心,哈哈哈哈')執(zhí)行結(jié)果:
因為continue是退出當前一次循環(huán),繼續(xù)下一次循環(huán),所以該循環(huán)在continue控制下是可以正常
結(jié)束的,當循環(huán)結(jié)束后,則執(zhí)?了else縮進的代碼。
2.for…else
語法
for 臨時變量 in 序列:重復執(zhí)?的代碼... else:循環(huán)正常結(jié)束之后要執(zhí)?的代碼所謂else指的是循環(huán)正常結(jié)束之后要執(zhí)行的代碼,即如果是break終?循環(huán)的情況,else下方縮進
的代碼將不執(zhí)行。
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' str1 = 'qwertyui' for i in str1:if i == 't':print('遇到t不打印')breakprint(i) else:print('循環(huán)正常結(jié)束之后執(zhí)行的代碼')執(zhí)行結(jié)果:
沒有執(zhí)行else縮進的代碼
continue控制循環(huán)
str1 = 'qwertyui' for i in str1:if i == 't':print('遇到t不打印')continueprint(i) else:print('循環(huán)正常結(jié)束之后執(zhí)行的代碼')執(zhí)行結(jié)果:
因為continue是退出當前一次循環(huán),繼續(xù)下一次循環(huán),所以該循環(huán)在continue控制下是可以正常
結(jié)束的,當循環(huán)結(jié)束后,則執(zhí)?了else縮進的代碼。
# 重復打印5?星星 # j表示行號 j = 0 while j <= 4: # 一?星星的打印i = 0 # i表示每?行行?面星星的個數(shù),這個數(shù)字要和行號相等所以i要和j聯(lián)動while i <= j:print('*', end='')i += 1print()j += 1總結(jié)
以上是生活随笔為你收集整理的python教程:循环(while和for)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 特殊成员和魔法方法
- 下一篇: Python的itertools.pro