首頁 >後端開發 >Python教學 >Python 迴圈語句之 while,for語句詳解

Python 迴圈語句之 while,for語句詳解

不言
不言原創
2018-04-23 15:18:382883瀏覽

以下為大家分享一篇Python 迴圈語句之 while,for語句詳解,具有很好的參考價值,希望對大家有幫助。一起來看看吧

Python中有兩種循環,分別為:for循環和while循環。 for迴圈可以遍歷任何序列的項目,如一個清單或一個字串。 while 語句用於循環執行程序,即在某個條件下,循環執行某段程序,以處理需要重複處理的相同任務。

循環語句(有兩種):

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
ello##執行結果:[root@localhost data]# ./test.pypy
ello##2
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
   
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:

       ("循環開始i=",i)

        if i == 5:      #當i = 5時結束循環
          ] # ./test.py
迴圈開始i= 1
迴圈開始i= 2
迴圈開始i= 3
迴圈開始i= 4
迴圈開始i= 5


死迴圈death loop:


1,死迴圈是指迴圈條件一直成立的迴圈

2,死迴圈通常用break語句來終止迴圈

3,死循環的else子句永遠不會執行
如:用input輸入一些文字,當輸入三個*號時,代表輸入結束,否則一直循環。

s = ""
while True:
        a = input("請輸入文字(***結束)")
        if a == '***':
                break
        s = a '\n'
##執行結果:[root@localhost data]# ./test.py ##2#100 文字結束文字:請輸入文字」 (***結束)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(x)
else:  
    "繼續執行此條")    #迭代物件無法提供資料時,繼續執行else中的這條
##執行結果:[root@localhost data]# ./test.py
A
B
C
D
E
繼續執行此條

3,else子句部分可以省略(同while語句類似)

4,當在語句內部用break終止迴圈時,else子句部分語句區塊2不會執行,
             可迭代物件時指能依序取得資料元素的物件

#N: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:#o )
        
#運作結果:
[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時,跳過列印,並進行下一次循環。
                     


#範例:
寫一個程序,求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
[root@localhost data]# ./test.py
3007



六:range 函數:

作用:用來建立一個產生一系類別整數的可迭代物件(也叫整數序列產生器。)
呼叫格式:
range(stop)
從零開始,每次產生一個整數後加1,操作,直到stop為止(不包含stop)
range(start,stop[,step])從start開始,每次產生一個整數後移動step,直到stop為止(不包含stop,且step可以為負數。過大的列表產生。
    如:

>>> 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迴圈語句中else的用法總結

以上是Python 迴圈語句之 while,for語句詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn