一python
循環語句(有兩種):ide
while 語句函數
for 語句oop
while 語句:測試
問題:輸入一個整數n,讓程序輸出n行的:spa
hello 1對象
hello 2input
.......it
hell nfor循環
while 語句:
做用:根據必定條件,重複的執行一條語句或多條語句
語法:
while 真值表達式:
語句塊1......
else:
語句塊2......
說明:
1,先執行真值表達式,測試布爾值爲True或False
2,若是真值表達式的測試值爲True,側執行語句1,而後再返回到第一步重複進行測試
3,若是真值表達式的測試值爲False。則執行else子句中的語句塊2,而後結束此while語句的執行,若是沒有else子句,則直接結束while語句的執行。
4,else子句部分能夠省略(同if語句相似)。
如:打印10行的hello i = 1 #建立並初始化一個控制while循環的變量i while i <= 10: print("hello") #此處執行10次 i += 1 #運行結果:[root@localhost data]# ./test.py hello hello hello hello hello hello hello hello hello hello
while語句的注意事項:
1,要控制循環的真值表達式的值來防止死循環。
2,一般用真值表達式中的循環變量來控制循環條件。
3,一般在循環語句塊內須要改變循環來控制循環的次數和變量的走向
while循環的嵌套:
while語句自己是語句,和其它的語句同樣能夠嵌套在其它複合語句中(如:if語句 ,while語句, for語句 ....內部)
while語句嵌套示意:
while 真值表達式:
.......
while 真值表達式2:
......
else:
........
else:
........
如:
輸入一個數,打印指定寬度的正方形:
如:輸入:5
n = int(input("輸入一個數:")) j = 1 while j <= n: i = 1 while i <= n: print(i,end=' ') i += 1 print() j += 1 ######運行結果: 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
break 語句:
做用:用於循環語句(while,for語句)中,用來終止當前循環語句的執行。
說明:
1,當break語句執行後,此循環語句break以後的語句將再也不執行
2,break語句一般和if語句組合使用。
3,break語句終止循環時,循環語句的else子句將不會被執行
4,break語句只能終止當前循環的執行,若是有循環嵌套時,不會跳出嵌套的外重循環
5,break語句只能在循環語句(while或for語句)內部使用
如:
i = 1 while i < 10: print("循環開始i=",i) if i == 5: #當i = 5時結束循環 break i += 1 #運行結果:[root@localhost data]# ./test.py 循環開始i= 1 循環開始i= 2 循環開始i= 3 循環開始i= 4 循環開始i= 5
死循環 death loop:
1,死循環是指循環條件一直成立的循環
1,死循環一般用break語句來終止循環
3,死循環的else子句永遠不會執行
如:用input輸入一些文字,當輸入三個*號時,表明輸入結束,不然一直循環。
s = "" while True: a = input("請輸入文字(***結束)") if a == '***': break s += a + '\n' ##運行結果:[root@localhost data]# ./test.py 請輸入文字(***結束)a 請輸入文字(***結束)b 請輸入文字(***結束)v 請輸入文字(***結束)c 請輸入文字(***結束)d 請輸入文字(***結束)*** #輸入三個*** 結束,退出循環 [root@localhost data]#
二:
for 語句(循環語句)
做用:用來遍歷可迭代對象的數據元素
語法:
for 變量列表 in 可迭代對象:
語句塊1......
else:
語句塊2......
語法說明:
1,可迭代對象每次提供一個元素依次賦值給變量列表中的變量,賦值完畢後執行語句塊1,重複執行此步驟,
2,當可迭代對象不可以提供數據時,執行else子句部分的語句塊2,而後退出循環。
如: s = 'ABCDE' for x in s: print(x) else: print("繼續執行此條") #迭代對象不可以提供數據時,繼續執行else中的這條 ##運行結果:[root@localhost data]# ./test.py A B C D E 繼續執行此條
3,else子句部分能夠省略(同while語句相似)
4,當在語句內部用break終止循環時,else子句部分語句塊2不會執行,
可迭代對象時指能依次獲取數據元素的對象
四:
for循環嵌套: 和while循環嵌套同樣
如:
for x in "ABC": for y in "123": print(x + y) ##運行結果: [root@localhost data]# ./test.py A1 A2 A3 B1 B2 B3 C1 C2 C3
經典否循環嵌套示例:
用for循環嵌套打印以下圖形:
(輸入一個數n(10之內)表明矩形的寬度和高度)
如: 輸入:5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
n = int(input("輸入一個數:")) for i in range(1, n +1): for j in range(i, i + n): print(j,end=' ') else: print() #運行結果: [root@localhost data]# ./test.py 輸入一個數:5 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9
五:
continue 語句:
做用:用於循環語句(while,for語句)中,再也不執行本次循環內continue以後的語句,從新開始一次新循環。
說明:
1,在while語句中執行continue語句,將直接跳轉到while語句的真值表達式從新判斷循環條件。
2,在for語句中執行continue語句,將會從可迭代對象中取下一個元素,綁定變量後再次進行循環。
如:
for i in range(5): if i == 3: #當i 等於3時,跳過打印,進行下一次循環。 continue print(i) #運行結果 [root@localhost data]# ./test.py 0 1 2 4
示例:
寫一個程序,求1-100之間所不能被5,7,11整除的數的和。
s = 0 for i in range(1,101): if (i % 5) == 0 or (i % 7) == 0 or (i % 11) == 0: continue s += i print(s) #運行結果: [root@localhost data]# ./test.py 3007
六:
range 函數:
做用:用來建立一個生成一系類整數的可迭代對象(也叫整數序列生成器。)
調用格式:
range(stop)
從零開始,每次生成一個整數後加1,操做,直到stop爲止(不包含stop)
range(start,stop[,step])從start開始,每次生成一個整數後移動step,直到stop爲止(不包含stop,且step能夠爲負數。)
注:若是直接打印range(5)或(print(range(5)))的時候會獲得range(5),而不是一個列表,這是由於節省空間,防止過大的列表產生。
如:
>>> range(5) range(0, 5) >>>
若是想要到交互模式下獲得列表,能夠加入list到前面來進行,以下:
示例:
>>> list(range(5)) [0, 1, 2, 3, 4] >>> list(range(1,6)) [1, 2, 3, 4, 5] >>> list(range(10,0,-1)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] >>> list(range(1,10,2)) [1, 3, 5, 7, 9] >>> list(range(5,0,-2)) [5, 3, 1] >>>