4. ? for 迴圈通常配合可疊代列舉物件 (如串列) 來運作,迴圈執行時會依
序取出元素,指定給迴圈變數,?直到全部元素都處理完為止
? 語法
for 廻圈變數 in 串列:
廻圈區塊
? 迴圈區塊要向右縮排4個空白字元
? 如果迴圈區塊只有?行程式碼時,迴圈區塊可以接續在冒號後?
for 迴圈 1/2
True
還有元素未處理?
False
迴圏變數=串列
第1個元素
迴圏變數=串列
下1個元素
迴圏區塊
4
5. ? for 迴圈範例1
fruits = ['apple', 'banana', 'cherry', 'orange']
for x in fruits:
print(x, end = ", ")
執行結果:
apple, banana, cherry, orange
? for 迴圈範例2
price = [60, 33.4, 500, 125]
for x in price:
print(x, end = ", ")
執行結果:
60, 33.4, 500, 125
for 迴圈 1/2
5
9. ? 參考程式
mn = int(input('輸入起始值:'))
mx = int(input('輸入結束值:'))
print('從%d到%d之間的完美數有:' %(mn, mx))
for n in range(mn, mx + 1):
sum = 0
for i in range(1, n // 2 + 1):
if(n % i == 0):
sum = sum + i
if(sum == n):
print('%d' %(n))
測試:
輸入起始值:1
輸入結束值:10000
從1到10000之間的完美數有:
6
28
496
8128
Lab 尋找完美數 2/2
9
11. ? 參考程式
print('Narcissistic numbers between 1000 and 10000:')
for n in range(1000, 10000):
i = n // 1000 #分解出千位數
j = n // 100 % 10 #分解出百位數
k = n // 10 % 10 #分解出十位數
l = n % 10 #分解出個位數
if(n == i ** 4 + j ** 4 + k ** 4 + l ** 4):
print('%5d' %(n))
測試:
Narcissistic numbers between 1000 and 10000:
1634
8208
9474
Lab 尋找自戀數 2/2
11
13. ? 參考程式
num = int(input('計算第幾項費氏級數值?'))
a = 0
b = 1
for i in range(1, num + 1):
a, b = b, a + b
print(a, end = ',')
print()
print('費氏級數第%d項的值為%d' %(num, a))
測試:
計算第幾項費氏級數值?10
1,1,2,3,5,8,13,21,34,55,
費氏級數第10項的值為55
Lab 費氏級數 2/2
13
14. ? 迴圈執行時,break 命令可強制脫離迴圈
? 須搭配條件敘述
? break 命令也適用 while 迴圈
break命令
14
1
2
3
4
5
6
7
for var in range(start, end):
statement
if(boolean-expression):
break
statement
...
statement
強制脫離for迴圈
15. ? 迴圈執行時,continue 命令可略過本次循環,回到迴圈起始處執行下
?循環
? 須搭配條件敘述
? continue 命令也適用 while 迴圈
continue命令
15
1
2
3
4
5
6
7
for var in range(start, end):
statement
if(boolean-expression):
continue
statement
...
statement
繼續處理下一個元素資料
16. ? for 迴圏可以加上else程式區塊,語法如下:
for 迴圈變數 in 串列:
迴圈區塊
else:
程式區塊
? 當 for 迴圈正常結束後,程式流程才會執行else程式區塊?次
for…else
True
還有元素未處理?
False
迴圏變數=串列
第1個元素
迴圏變數=串列
下1個元素
迴圏區塊
else程式區塊
16
29. ? 下列程式,最後?次輸出的結果為何?
x = -10
while (x):
print (x)
x += 1
A. -1
B. 0
C. 1
D. 語法錯誤,無法執行
自我評量 4/7
29
30. ? 下列程式,最後?次輸出的結果為何?
x = 10
while (x):
print (x)
x -= 1
A. -1
B. 0
C. 1
D. 語法錯誤,無法執行
自我評量 5/7
30
31. ? 下列迴圏區塊,執行的次數為何?
for x in range(1, 10):
if x % 2:
continue
print(x, end = ',')
A. 1,2,3,4,5,6,7,8,9,10,
B. 1,2,3,4,5,6,7,8,9,
C. 1,3,5,7,9,
D. 2,4,6,8,
自我評量 6/7
31
32. ? 下列迴圏區塊,執行的次數為何?
for x in range(1, 10):
if not x % 2:
continue
print(x, end = ',')
A. 1,2,3,4,5,6,7,8,9,10,
B. 1,2,3,4,5,6,7,8,9,
C. 1,3,5,7,9,
D. 2,4,6,8,
自我評量 7/7
32