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

來源:互聯網
上載者:User
下面為大家分享一篇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
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,死迴圈是指迴圈條件一直成立的迴圈
2,死迴圈通常用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迴圈語句中else的用法總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.