新聞中心
Python3 循環(huán)語句
本章節(jié)將為大家介紹 Python 循環(huán)語句的使用。

Python 中的循環(huán)語句有 for 和 while。
Python 循環(huán)語句的控制結(jié)構(gòu)圖如下所示:
while 循環(huán)
Python 中 while 語句的一般形式:
while 判斷條件(condition):
執(zhí)行語句(statements)……
執(zhí)行流程圖如下:
執(zhí)行 Gif 演示:
同樣需要注意冒號和縮進(jìn)。另外,在 Python 中沒有 do..while 循環(huán)。
以下實例使用了 while 來計算 1 到 100 的總和:
實例
#!/usr/bin/env python3
n
=
100
sum
=
0
counter
=
1
while
counter
<=
n
:
sum
=
sum
+
counter
counter
+=
1
print
(
"
1 到 %d 之和為: %d
"
%
(
n
,
sum
)
)
執(zhí)行結(jié)果如下:
1 到 100 之和為: 5050
無限循環(huán)
我們可以通過設(shè)置條件表達(dá)式永遠(yuǎn)不為 false 來實現(xiàn)無限循環(huán),實例如下:
實例
#!/usr/bin/python3
var
=
1
while
var
==
1
:
# 表達(dá)式永遠(yuǎn)為 true
num
=
int
(
input
(
"
輸入一個數(shù)字 :
"
)
)
print
(
"
你輸入的數(shù)字是:
"
,
num
)
print
(
"
Good bye!
"
)
執(zhí)行以上腳本,輸出結(jié)果如下:
輸入一個數(shù)字 :5 你輸入的數(shù)字是: 5 輸入一個數(shù)字 :
你可以使用 CTRL+C 來退出當(dāng)前的無限循環(huán)。
無限循環(huán)在服務(wù)器上客戶端的實時請求非常有用。
while 循環(huán)使用 else 語句
如果 while 后面的條件語句為 false 時,則執(zhí)行 else 的語句塊。
語法格式如下:
while: else:
expr 條件語句為 true 則執(zhí)行 statement(s) 語句塊,如果為 false,則執(zhí)行 additional_statement(s)。
循環(huán)輸出數(shù)字,并判斷大小:
實例
#!/usr/bin/python3
count
=
0
while
count
<
5
:
print
(
count
,
"
小于 5
"
)
count
=
count
+
1
else
:
print
(
count
,
"
大于或等于 5
"
)
執(zhí)行以上腳本,輸出結(jié)果如下:
0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5
簡單語句組
類似 if 語句的語法,如果你的 while 循環(huán)體中只有一條語句,你可以將該語句與 while 寫在同一行中, 如下所示:
實例
#!/usr/bin/python
flag
=
1
while
(
flag
)
:
print
(
'
歡迎訪問菜鳥教程!
'
)
print
(
"
Good bye!
"
)
注意:以上的無限循環(huán)你可以使用 CTRL+C 來中斷循環(huán)。
執(zhí)行以上腳本,輸出結(jié)果如下:
歡迎訪問菜鳥教程! 歡迎訪問菜鳥教程! 歡迎訪問菜鳥教程! 歡迎訪問菜鳥教程! 歡迎訪問菜鳥教程! ……
for 語句
Python for 循環(huán)可以遍歷任何可迭代對象,如一個列表或者一個字符串。
for循環(huán)的一般格式如下:
for
<
variable
>
in
<
sequence
>: <
statements
>
else
: <
statements
>
流程圖:
Python for 循環(huán)實例:
實例
#!/usr/bin/python3
sites
=
[
"
Baidu
"
,
"
Google
"
,
"
Runoob
"
,
"
Taobao
"
]
for
site
in
sites
:
print
(
site
)
以上代碼執(zhí)行輸出結(jié)果為:
Baidu Google Runoob Taobao
也可用于打印字符串中的每個字符:
實例
#!/usr/bin/python3
word
=
'
runoob
'
for
letter
in
word
:
print
(
letter
)
以上代碼執(zhí)行輸出結(jié)果為:
r u n o o b
整數(shù)范圍值可以配合 range() 函數(shù)使用:
實例
#!/usr/bin/python3
# 1 到 5 的所有數(shù)字:
for
number
in
range
(
1
,
6
)
:
print
(
number
)
以上代碼執(zhí)行輸出結(jié)果為:
1 2 3 4 5
for...else
在 Python 中,for...else 語句用于在循環(huán)結(jié)束后執(zhí)行一段代碼。
語法格式如下:
for item in iterable:
# 循環(huán)主體
else:
# 循環(huán)結(jié)束后執(zhí)行的代碼當(dāng)循環(huán)執(zhí)行完畢(即遍歷完 iterable 中的所有元素)后,會執(zhí)行 else 子句中的代碼,如果在循環(huán)過程中遇到了 break 語句,則會中斷循環(huán),此時不會執(zhí)行 else 子句。
實例
for x
in
range
(
6
):
print
(x
)
else:
print
(
"Finally finished!"
)
執(zhí)行腳本后,輸出結(jié)果為:
0 1 2 3 4 5 Finally finished!
以下 for 實例中使用了 break 語句,break 語句用于跳出當(dāng)前循環(huán)體,不會執(zhí)行 else 子句:
實例
#!/usr/bin/python3
sites
=
[
"
Baidu
"
,
"
Google
"
,
"
Runoob
"
,
"
Taobao
"
]
for
site
in
sites
:
if
site
==
"
Runoob
"
:
print
(
"
菜鳥教程!
"
)
break
print
(
"
循環(huán)數(shù)據(jù)
"
+
site
)
else
:
print
(
"
沒有循環(huán)數(shù)據(jù)!
"
)
print
(
"
完成循環(huán)!
"
)
執(zhí)行腳本后,在循環(huán)到 "Runoob"時會跳出循環(huán)體:
循環(huán)數(shù)據(jù) Baidu 循環(huán)數(shù)據(jù) Google 菜鳥教程! 完成循環(huán)!
range() 函數(shù)
如果你需要遍歷數(shù)字序列,可以使用內(nèi)置 range() 函數(shù)。它會生成數(shù)列,例如:
實例
>>>
for
i
in
range
(
5
)
: ...
print
(
i
)
...
0
1
2
3
4
你也可以使用 range() 指定區(qū)間的值:
實例
>>>
for
i
in
range
(
5
,
9
)
:
print
(
i
)
5
6
7
8
>>>
也可以使 range() 以指定數(shù)字開始并指定不同的增量(甚至可以是負(fù)數(shù),有時這也叫做'步長'):
實例
>>>
for
i
in
range
(
0
,
10
,
3
)
:
print
(
i
)
0
3
6
9
>>>
負(fù)數(shù):
實例
>>>
for
i
in
range
(
-
10
, -
100
, -
30
)
:
print
(
i
)
-
10
-
40
-
70
>>>
您可以結(jié)合 range() 和 len() 函數(shù)以遍歷一個序列的索引,如下所示:
實例
>>>
a
=
[
'
Google
'
,
'
Baidu
'
,
'
Runoob
'
,
'
Taobao
'
,
'
QQ
'
]
>>>
for
i
in
range
(
len
(
a
)
)
: ...
print
(
i
,
a
[
i
]
)
...
0
Google
1
Baidu
2
Runoob
3
Taobao
4
QQ
>>>
還可以使用 range() 函數(shù)來創(chuàng)建一個列表:
實例
>>>
list
(
range
(
5
)
)
[
0
,
1
,
2
,
3
,
4
]
>>>
更多關(guān)于 range() 函數(shù)用法參考:
break 和 continue 語句及循環(huán)中的 else 子句
break 執(zhí)行流程圖:
continue 執(zhí)行流程圖:
while 語句代碼執(zhí)行過程:
for 語句代碼執(zhí)行過程:
break 語句可以跳出 for 和 while 的循環(huán)體。如果你從 for 或 while 循環(huán)中終止,任何對應(yīng)的循環(huán) else 塊將不執(zhí)行。
continue 語句被用來告訴 Python 跳過當(dāng)前循環(huán)塊中的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán)。
實例
while 中使用 break:
實例
n
=
5
while n
>
0:
n -
=
1
if n
==
2:
break
print
(n
)
print
(
'循環(huán)結(jié)束。'
)
輸出結(jié)果為:
4 3 循環(huán)結(jié)束。
while 中使用 continue:
實例
n
=
5
while n
>
0:
n -
=
1
if n
==
2:
continue
print
(n
)
print
(
'循環(huán)結(jié)束。'
)
輸出結(jié)果為:
4 3 1 0 循環(huán)結(jié)束。
更多實例如下:
實例
#!/usr/bin/python3
for
letter
in
'
Runoob
'
:
# 第一個實例
if
letter
==
'
b
'
:
break
print
(
'
當(dāng)前字母為 :
'
,
letter
)
var
=
10
# 第二個實例
while
var
>
0
:
print
(
'
當(dāng)前變量值為 :
'
,
var
)
var
=
var
-
1
if
var
==
5
:
break
print
(
"
Good bye!
"
)
執(zhí)行以上腳本輸出結(jié)果為:
當(dāng)前字母為 : R 當(dāng)前字母為 : u 當(dāng)前字母為 : n 當(dāng)前字母為 : o 當(dāng)前字母為 : o 當(dāng)前變量值為 : 10 當(dāng)前變量值為 : 9 當(dāng)前變量值為 : 8 當(dāng)前變量值為 : 7 當(dāng)前變量值為 : 6 Good bye!
以下實例循環(huán)字符串 Runoob,碰到字母 o 跳過輸出:
實例
#!/usr/bin/python3
for
letter
in
'
Runoob
'
:
# 第一個實例
if
letter
==
'
o
'
:
# 字母為 o 時跳過輸出
continue
print
(
'
當(dāng)前字母 :
'
,
letter
)
var
=
10
# 第二個實例
while
var
>
0
:
var
=
var
-
1
if
var
==
5
:
# 變量為 5 時跳過輸出
continue
print
(
'
當(dāng)前變量值 :
'
,
var
)
print
(
"
Good bye!
"
)
執(zhí)行以上腳本輸出結(jié)果為:
當(dāng)前字母 : R 當(dāng)前字母 : u 當(dāng)前字母 : n 當(dāng)前字母 : b 當(dāng)前變量值 : 9 當(dāng)前變量值 : 8 當(dāng)前變量值 : 7 當(dāng)前變量值 : 6 當(dāng)前變量值 : 4 當(dāng)前變量值 : 3 當(dāng)前變量值 : 2 當(dāng)前變量值 : 1 當(dāng)前變量值 : 0 Good bye!
循環(huán)語句可以有 else 子句,它在窮盡列表(以for循環(huán))或條件變?yōu)?false (以while循環(huán))導(dǎo)致循環(huán)終止時被執(zhí)行,但循環(huán)被 break 終止時不執(zhí)行。
如下實例用于查詢質(zhì)數(shù)的循環(huán)例子:
實例
#!/usr/bin/python3
for
n
in
range
(
2
,
10
)
:
for
x
in
range
(
2
,
n
)
:
if
n
%
x
==
0
:
print
(
n
,
'
等于
'
,
x
,
'
*
'
,
n
//
x
)
break
else
:
# 循環(huán)中沒有找到元素
print
(
n
,
'
是質(zhì)數(shù)
'
)
執(zhí)行以上腳本輸出結(jié)果為:
2 是質(zhì)數(shù) 3 是質(zhì)數(shù) 4 等于 2 * 2 5 是質(zhì)數(shù) 6 等于 2 * 3 7 是質(zhì)數(shù) 8 等于 2 * 4 9 等于 3 * 3
pass 語句
Python pass是空語句,是為了保持程序結(jié)構(gòu)的完整性。
pass 不做任何事情,一般用做占位語句,如下實例
實例
>>>
while
True
: ...
pass
# 等待鍵盤中斷 (Ctrl+C)
最小的類:
實例
>>>
class
MyEmptyClass
: ...
pass
以下實例在字母為 o 時 執(zhí)行 pass 語句塊:
實例
#!/usr/bin/python3
for
letter
in
'
Runoob
'
:
if
letter
==
'
o
'
:
pass
print
(
'
執(zhí)行 pass 塊
'
)
print
(
'
當(dāng)前字母 :
'
,
letter
)
print
(
"
Good bye!
"
)
執(zhí)行以上腳本輸出結(jié)果為:
當(dāng)前字母 : R 當(dāng)前字母 : u 當(dāng)前字母 : n 執(zhí)行 pass 塊 當(dāng)前字母 : o 執(zhí)行 pass 塊 當(dāng)前字母 : o 當(dāng)前字母 : b Good bye!
if None:
print(“Hello”)
for i in [1, 0]:
print(i+1)
i = sum = 0
while i <= 4:
sum += i
i = i+1
print(sum)
while 4 == 4:
print('4')
for char in 'PYTHON STRING':
if char == ' ':
break
print(char, end='')
if char == 'O':
continue
當(dāng)前標(biāo)題:Python3循環(huán)語句
標(biāo)題URL:http://fisionsoft.com.cn/article/dhogpid.html


咨詢
建站咨詢
