1. 程式人生 > >Python 循環 while,for語句

Python 循環 while,for語句

while for break continue

循環語句(有兩種):

while 語句

for 語句

while 語句:

問題:輸入一個整數n,讓程序輸出n行的:

hello 1

hello 2

.......

hell n

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]
>>>



Python 循環 while,for語句