迴圈結構是使用while
、for
迴圈語句的結構,可以減少冗餘**,提公升**的效率。
while
迴圈,while
迴圈的使用if
的基本相同,在while
之後使用表示式,如果表示式為真,就會反覆執行while
迴圈**塊的作用域,每執行完一次就重新判斷while
的表示式,真就重複上述步驟,直到表示式為假才會跳出;如果一開始就是假,直接跳過。
while expression:
code0
code1
...
# 輸出1 ~~ 100 的數字,並計算出它們的和
num =
1# 數字
sum_up =
0# 計算和
count =
100# 迴圈的次數
while count:
# 判斷count的值,如果為0就跳出迴圈
print
(num)
# 輸出數字
sum_up += num # 計算他們的和
num +=
1# 數字自增
count -=
1# 次數自減
print
('和:'
, sum_up)
# 迴圈結束,輸出他們的和
死迴圈
只要while迴圈的條件表示式一直為真,相應的作用域就會一直執行,無法跳出,形成死迴圈。死迴圈時迴圈無法跳出,迴圈語句之後的**也不會執行。
while
true
:print
('死迴圈'
)print
('跳出迴圈'
)# 永遠無法跳出迴圈
我們來講三個很重要的關鍵字:pass
、break
、continue
pass
意思是過、佔位符。本身是個空語句,沒有任何含義,不會做任何的事情,只是為了保持程式結構的完整性二佔據一些必要的位置。
要注意區分none
和pass
的區別,none
的意思是什麼都沒有,但是也一層布林為假的含義;而pass
是一點意義都沒有,只是為了佔據一些位置放置出錯而已,更多的情況是用來程式的開發中使用,正式上線是很難看到這個關鍵字的。
# **塊中必須有作用域,否則出錯,但是我現在不想執行任何東西,怎麼辦?
iftrue
:pass
# 使用pass佔位
while
true
:pass
# 使用pass佔位
break
只能用於迴圈語句當中,比如while
、for
,只要出現這個關鍵字,迴圈立即中斷,並跳出迴圈,迴圈作用域中未執行的**也不會執行,即使是迴圈語句的條件表示式尚未為假,也會立刻停止執行。
count =
10while count:
count -=
1if count ==6:
break
print
(count)
'''結果:98
7'''
continue
只能用於迴圈語句當中,注意和break
的區別,continue
是跳過當前的迴圈語句,然後繼續迴圈的執行。
count =
10while count:
count -=
1if count ==6:
continue
print
(count)
'''結果:98
7543
210'''
作用
迴圈、遍歷、迭代。for迴圈的主要作用是可以遍歷迭代可迭代物件。將遍歷可迭代物件中的資料元素此乙個乙個依次提取出來,然後執行**塊中的**,直到遍歷結束。
遍歷型別
可迭代物件:容器型別資料、range()函式、迭代器。
# for …… in 中間的變數是可迭代物件中的元素資料。
for 變數 in 可迭代物件:
code2
code1
...
# 將乙個容器中的資料遍歷出來,所有的容器都是可迭代物件
container =
'hello motherland'
for i in container:
print
(i)
遍歷字典只會遍歷出字典的鍵
dctvar =
for i in dctvar:
print
(i)'''
結果;one
twothree
'''
遍歷多級容器,我們就需要巢狀使用for迴圈
var =[[
1,2,
3,4,
5],[
12,34,
56,67,
84,55]
]for i in var:
for j in i:
print
(j)
變數的解包
對於容器,我們可以直接使用同等長度數量的變數直接將容器中的資料提取出來。
# 所有容器都支援
a, b, c, d, e =
'hello'
print
(a, b, c, d, e)
a, b =
['hello'
,'motherland'
]print
(a, b)
a, b =
# 解包字典獲取的是字典的鍵
print
(a, b)
'''結果:
h e l l o
hello motherland
one two
'''
所以遍歷等長的多級容器的時候就可以利用變數的解包這一特性,快速遍歷容器,盡量的避免迴圈的巢狀使用,因為迴圈巢狀是十分消耗計算機資源的。
var =[[
1,2,
3,4,
5],[
12,56,
67,84,
55]]for a, b, c, d, e in var:
print
(a, b, c, d, e)
'''結果:
1 2 3 4 5
12 56 67 84 55
'''
range()物件
range函式是乙個可迭代物件,可以按照順序返回一些數字,可以配合for將一些複雜的工作簡化。
語法:range的三個引數都是整型數字,range有三種使用方法range([start_number], stop_number, step_number)
range([開始值], 結束值, [步長])
輸入乙個引數,這個引數表示結束值,返回的結果是0 ~~ n-1
for i in
range(5
):print
(i)'''
結果;012
34'''
輸入兩個引數,第乙個引數s是開始值,第二個引數n是結束值,返回s ~~ n-1
。
for i in
range(-
3,2)
:print
(i)'''
結果:-3
-2-101
'''
輸入三個引數,第三個引數表示步長,意思是數值的增長按照步長的大小來依次返回。
# 從2開始,數字按照3來增長,預設是1
for i in
range(2
,10,3
):print
(i)'''
結果:258
'''
倒數
for i in
range(5
,0,-
1):print
(i)'''
結果:543
21'''
while
迴圈一般使用再較為浮躁的邏輯當中;for
迴圈一般就是用於資料的遍歷。但是它們兩個之間的本質是相同的。 python中的迴圈語法
while 條件 條件成立重複執行 1 條件成立重複執行 2 while 的迴圈巢狀語法 while 條件1 條件1成立執行語句 while 條件2 條件2成立執行 fo迴圈語句 for 臨時變數 in 序列 重複執行語句1 重複執行語句1 break退出整個迴圈 continue退出本次迴圈,繼續...
Python基礎語法 迴圈(四)
前言這是這一階段對迴圈語法練習的乙個實踐練習分享及總結 題目找出乙個整數的所有最小因子,即所有因子均為素數因子,例如8的所有因子即為2,2,2。思路解析 在程式設計前先進行梳理整個解題過程,首先是需要找到整數的因子,同時對因子進行素數的判斷並將非素數因子進行分解,同時需要注意因子是成對出現的,而分解...
Python基本語法 迴圈語句
學習筆記以備日後溫習 python3入門與高階 分支迴圈條件與列舉 包 模組 函式 功能 輸入賬號密碼完成開鎖 account qiyue password 123456 print please input account user account input print please input...