## wk05_1005_ch04_迴圈 4.1 range 函式 認識 range 函式 range 函式的語法 4.2 for 迴圈 巢狀 for 迴圈 break 命令 continue 命令 4.3 while 迴圈 ## 【inclass practice】 {範例} 1. 觀察各種不同參數的以range()建立的數列 <range> 2. 顯示正整數數列 <numshow> 3. 計算正整數總和 <numtotal> 4. #字直角三角形 <fornest> 5. 九九乘法表 <ninenine> 6. 最小公倍數 <multiple> 7. 顯示正整數數列,排除5的倍數 <except5> 8. while迴圈計算階乘 <while> ```python print("*"*3) ``` *** ```python c1 = "amanda" c2 = "Thor" c3 = "Peter" c4 = "Chanel" c = ["amanda","Thor","Peter","Chanel"] print(c1,c2,c3,c4) print(c) type(c) ``` amanda Thor Peter Chanel ['amanda', 'Thor', 'Peter', 'Chanel'] list ```python for i in [1,2,3,4,5]: print("$"*i) ``` $ $$ $$$ $$$$ $$$$$ ```python list(range(10)) ``` [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ```python n=10 ttl=1 ttl=ttl+2 ttl=ttl+3 ttl=ttl+4 ttl=ttl+5 ttl=ttl+6 ttl=ttl+7 ttl=ttl+8 ttl=ttl+9 ttl=ttl+10 print(ttl) ``` 55 ```python n=10 ttl=0 for i in range (1,11): ttl+=i print(ttl) ``` 55 ```python n=10 ttl=0 for i in range (1,10000,2): ttl+=i print(ttl) ``` 25000000 ```python n= int(input("enter your n :")) ttl=0 for i in range (1,n+1,2): ttl+=i print(ttl) ``` enter your n :10000 25000000 ```python n=int(input("範圍1~:")) a=int(input("被多少整除")) b=int(input("被多少整除")) ttl=0 for i in range (n): if (i%a==0 or i%b==0): ttl+=i print(ttl) ``` 範圍1~:10000 被多少整除2 被多少整除5 29995000 ```python a=2 b=9 for i in range (1,b+1) : print(a,"*",i,"=",a*i) ``` 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 ### {綜合演練} 1. 實作4 : 小杰在for迴圈中使用or運算 if( i % 3 ==0 or i % 7 ==0), 求出數值 1~100中,所有是3或7倍數的數之總和 ```python sum=0 for i in range (1,101): if i % 3 ==0 or i % 7 ==0 : sum+=i print(sum) ``` 2208 2. 實作5: 一個正整數除了1和自己外,無法再被其他數整除,這個數就是質數。 請輸入一正整數,列出此數的所有正因數,並判斷使數字是否為質數 ```python a=int(input("請輸入數字:")) b=0 c=[1] for i in range (2,a) : if a%i == 0 : c.append(i) c.append(a) if len(c) != 2: print("非質數") else : print("質數") print(a,"的所有正因數為:",c) ``` 請輸入數字:97 質數 97 的所有正因數為: [1, 97] ## 【afterclass practice】 ( C ) 1. 執行下列程式,下列結果何者正確? (A) [1, 2, 3, 4] (B) [ 1, 2, 3, 4,5] (C) [0, 1, 2, 3, 4] (D) [0, 1, 2, 3, 4,5] ```python list1 = range(5) print(list(list1)) ``` [0, 1, 2, 3, 4] ( A ) 2. 執行下列程式,下列結果何者正確? (A) [6, 4, 2] (B) [6, 0, -2] (C) [6, 4, 2, 0] (D) [6, 4, 2, 0, -2] ```python list1=range(6,0,-2) print(list(list1)) ``` [6, 4, 2] ( B ) 3. 執行下列程式,結束迴圈後,n 的值為多少? (A) 1 (B) 3 (C) 5 (D) 7 ```python for n in range(1,5,2): print(n,end=" ") print("結束迴圈後 n=",n) ``` 1 3 結束迴圈後 n= 3 ( A ) 4. 執行 for 廻圈時,如果想要提前離開廻圈,應使用何種指令? (A) break (B) return (C) exit (D) pause ( C ) 5. 執行下列程式,下列結果何者正確? (A) [5,-1,-2] (B) [ 5,4,3,2,1,0,-1] (C) [5, 3, 1] (D) [5,3,1,-1] ```python list1 = range(5,-1,-2) print(list(list1)) ``` [5, 3, 1] ( B ) 6. while 廻圈若一開始測試條件就不成立,則 while 內程式區塊將會如何處理? (A) 執行一次 (B) 一次都不執行 (C) 重複執行 (D) 編譯錯誤 ( D ) 7. 下列那一個指令可在廻圈中跳過後面的敘述直接回到廻圈的開頭? (A) exit (B) return (C) pause (D) continue ( C ) 8. 執行下列程式,結束迴圈後,sum 的值為多少? (A) 8 (B) 9 (C) 16 (D) 28 ```python sum = 0 n=8 for i in range(1, n+1,2): sum += i print(sum) ``` 16 ( D ) 9. 執行下列程式,可看到多少個「#」字? (A) 5 (B) 6 C) 7 (D) 10 ```python n=5 for i in range(1,n): for j in range(1,i+1): print("#", end="") print() ``` ########## ( C ) 10. 執行下列程式,結束迴圈後,total 的值為多少? (A) 5 (B) 24 (C) 120 (D) 720 ```python total = i = 1 n=5 while(i<=n): total *= i i+=1 print(total) ``` 120