要計算1 + 2 + 3
,可以直接寫表示式:
>>>
1 + 2 + 3
6複製**
如果計算1 + 2 + 3 + ... + 10000
,直接寫表示式就不可能了。
為了讓計算機能計算成千上萬次的重複運算,就需要使用迴圈語句。
python的迴圈有兩種,一種是for ... in
迴圈,依次把list
或tuple
中的每個元素迭代出來,比如:
names = ['michael', 'bob', 'tracy']
for name in names:
print(name)
複製**
執行這段**,會依次列印names
的每乙個元素:
michael
bobtracy
複製**
所以for x in ...
迴圈就是把每個元素代入變數x
,然後執行縮排塊的語句。
再比如我們想計算1-10的整數之和,可以用乙個sum
變數做累加:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
複製**
如果要計算1-100的整數之和,從1寫到100有點困難,幸好python提供乙個range()
函式,可以生成乙個整數序列,再通過list()
函式可以轉換為list
。比如range(5)
生成的序列是從0開始小於5的整數:
>>> list(range(5))
[0, 1, 2, 3, 4]
複製**
range(101)
就可以生成0-100的整數序列,計算如下:
sum = 0
for x in range(101):
sum = sum + x
print(sum)
5050
複製**
第二種迴圈是while
迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。比如要計算100以內所有奇數之和,可以用while
迴圈實現:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
複製**
在迴圈內部變數n
不斷自減,直到變為-1
時,不再滿足while
條件,迴圈退出。
請利用迴圈依次對list
中的每個名字列印出hello, ***!
:
l = ['bart', 'lisa', 'adam']
for name in l:
print('hello,', name, '!', sep = '')
複製**
在迴圈中,break
語句可以提前退出迴圈。例如,本來要迴圈列印1~100的數字:
n = 1
while n <= 100:
print(n)
n = n + 1
print('end')
複製**
上面的**可以列印出1~100。
如果要提前結束迴圈,可以用break
語句:
n = 1
while n <= 100:
if n > 10: # 當n = 11時,條件滿足,執行break語句
break
# break語句會結束當前迴圈
print(n)
n = n + 1
print('end')
複製**
執行上面的**可以看到,列印出1~10後,緊接著列印end
,程式結束。
可見break的作用是提前結束迴圈。
在迴圈過程中,也可以通過continue
語句,跳過當前的這次迴圈,直接開始下一次迴圈。
n = 0
while n < 10:
n = n + 1
print(n)
複製**
上面的程式可以列印出1~10。但是,如果我們想只列印奇數,可以用continue
語句跳過某些迴圈:
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶數,執行continue語句
continue
# continue語句會直接繼續下一輪迴圈,後續的print()語句不會執行
print(n)
複製**
行上面的**可以看到,列印的不再是1~10,而是1,3,5,7,9。
可見continue
的作用是提前結束本輪迴圈,並直接開始下一輪迴圈。
迴圈是讓計算機做重複任務的有效的方法。
break
語句可以在迴圈過程中直接退出迴圈,而continue
語句可以提前結束本輪迴圈,並直接開始下一輪迴圈。這兩個語句通常都必須配合if
語句使用。
要特別注意,不要濫用break
和continue
語句。break
和continue
會造成**執行邏輯分叉過多,容易出錯。大多數迴圈並不需要用到break
和continue
語句,上面的兩個例子,都可以通過改寫迴圈條件或者修改迴圈邏輯,去掉break
和continue
語句。
有些時候,如果**寫得有問題,會讓程式陷入「死迴圈」,也就是永遠迴圈下去。這時可以用ctrl+c退出程式,或者強制結束python程序。
Python自學筆記 7 迴圈
for迴圈 for x in 迴圈就是把每個元素代入變數x,然後執行縮排塊的語句。比如我們想計算1 10的整數之和,可以用乙個sum變數做累加 sum 0 for x in 1,2,3,4,5,6,7,8,9,10 sum sum x print sum range 函式,可以生成乙個整數序列,再通...
python筆記7 for迴圈
1 for迴圈 while是滿足了某個條件,就開啟迴圈 而for迴圈強調的是遍歷某一資料物件。for in for i in 一堆資料 幹點什麼 a 1,2,3 for i in a print i 首先,把列表 a 裡面的 1 拿出來放在變數 i 裡面,然後去執行for迴圈內部的 接著上面的 首先...
python學習筆記(迴圈)
python中沒有沒有do while迴圈。迴圈體如果有多條語句,那麼靠縮進來表示乙個塊。1.while迴圈 1 一般形式 while condition operation 2 和else連用 當while迴圈條件不符合的時候跳出迴圈的時候如果想在跳出的時候執行某個句子,可以和else連用,這個方...