1.循環
廣義:一個周期現象或者重複出現的情況,這種狀態稱為循環
狹義:在滿足條件的情況下,反覆執行某一段代碼,在程式語言中出現的這種循環。被反覆執行的這段代碼稱為循環體
Python中提供的循環語句:while語句,for-in語句
2.while循環
循環體是指一組被重複執行的語句
條件表達式返回值為True,執行循環體中語句;執行完畢後,從新判斷表達式的值,直到表達式的結果為False時,退出循環。
# 語法:while 條件表達式
# 循環體
#計算1+2+3...+100的和
i = 1
Sum = 0
while i <= 100:
Sum += i
i += 1
print(Sum)
2.1 while-else
如果循環條件不具備,循環正常結束的話,會執行else語句塊如果循環時break退出的,則不走else語句# 語法:while 循環條件:
# 循環體
# else:
# 語句塊
#從鍵盤輸入一個數,判斷是否為素數(除1和本身外沒有其他除數)
Num = int(input("請輸入一個整數:"))
i = 2
while i < Num:
if Num % i == 0:
print("這是不是一個素數")
break
i += 1
else:
print("素數")
2.2 死循環
在循環體中表達式永遠為真的循環#條件式永遠為真,一直列印輸入"Hello,World"
while True:
print("Hello,World")
2.3 循環的語句套嵌
特點:外層循環走一步,內層循環執行一遍外層循環和內層循環的循環變量必須不同內層循環必須完全嵌套到外層循環裡面#語法:while 條件1: 外層循環# [語句塊A]# while 條件2:# [語句塊B]#列印九九乘法表i = 0while i < 9:i += 1j = 1while j < i+1:print("%dx%d=%2d"%(i,j,i * j),end=' ' )j += 1print("")
2.4 break和continue,exit(),pass
continue語句用來跳過當前循環的剩餘語句,然後重新判斷循環條件,開啟下一次循環。continue只能出現在while和for循環中
break用於結束當前的循環。只對當前這一重循環起作用。break只能出現在循環中
exit()結束程序
pass是佔位符,只是為了保證語法的完整性,本身沒有什麼實際意義
#continue語句終止本次循環不執行後面語句塊,直接進入下一次循環但仍在循環中#當i滿足 if i % 2 == 0 的時候,會執行i += 1,不會執行continue後面 sum1 += i i += 1語句,會重新回到while i < 100,只有if條件不滿足才會執行最後面兩個語句i = 0sum1 = 0while i < 100:if i % 2 == 0:i += 1continue # 結束本次循環,也就是說continue後面的循環體內的語句不在執行sum1 += ii += 1#break語句跳出循環while True:breakprint("條件為真,但是break跳出死循環")#exit()結束程序print("程序開始")exit(0)print("前面exit(0)或者exit()結束程序,不會執行列印這句")#pass空語句,保障語法完整不加pass會SyntaxError: unexpected EOF while parsing錯誤while True:pass
3.作業
3.1 計算1到1000內所有基數的和並輸出
i = 1Sum = 0while i <= 1000:Sum += ii += 2print(Sum)
3.2 求1到100之間可以被7整除個數
i = 1Sum = 0while i <= 100:i += 1if i % 7 == 0:Sum += 1print(Sum)
3.3 計算1到100之內所有3的倍數的和
i = 3Num = 0while i <= 100:Num += ii += 3print(Num)
3.4 計算1到100之內能被3或7整除的數的和並輸出
i = 1Sum = 0while i <= 100:i += 1if i % 7 == 0 or i % 3 == 0:Sum += iprint(Sum)
3.5 計算1到100以內能被7或者3整除但不能同時被這兩者整數的數的個數
i = 1Sum = 0while i <= 100:i += 1if i % 7 == 0 or i % 3 == 0:Sum += 1if i % 7 == 0 and i % 3 == 0:Sum -= 1print(Sum)
3.6 輸出1000以後的所有水仙花數
def Sxh():for i in range(100,1000):m = i // 100 #整除獲得百位數n = (i % 100) // 10 #十位數k = i % 10 #個位數if m**3 + n ** 3 + k ** 3 == i:print(i)#執行程序Sxh()
山東掌趣網絡科技