### wk05_1005_迴圈 4.1 range 函式 - 認識 range 函式 - range 函式的語法 4.2 for 迴圈 - 巢狀 for 迴圈 - break 命令 - continue 命令 4.3 while 迴圈 #### 【inclass practice】 ###### {範例} <pre> 1. 觀察各種不同參數的以range()建立的數列 <range> 2. 顯示正整數數列 <numshow> 3. 計算正整數總和 <numtotal> 4. #字直角三角形 <fornest> 5. 九九乘法表 <ninenine> 6. 最小公倍數 <multiple> 7. 顯示正整數數列,排除5的倍數 <except5> 8. while迴圈計算階乘 <while> </pre> ```python print("*" * 1) print("*" * 2) print("*" * 3) print("*" * 4) print("*" * 5) ``` * ** *** **** ***** ```python a = "*" b = 500 print(a * b) ``` ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** ```python c1 = "Alex" c2 = "Martin" c3 = "Ray" c = ["Alex", "Martin", "Ray"] print(type(c)) print(c1, c2, c3) print(c * 10) ``` <class 'list'> Alex Martin Ray ['Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray', 'Alex', 'Martin', 'Ray'] ```python list(range(10)) ``` [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ```python for i in range(10) : print ("$" * i) ``` $ $$ $$$ $$$$ $$$$$ $$$$$$ $$$$$$$ $$$$$$$$ $$$$$$$$$ ```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 + ttl print(ttl) ``` 55 ```python n = 10 ttl =0 for i in range(1, 10001) : ttl = i + ttl print(ttl) ``` 50005000 ```python n = 10 ttl =0 for i in range(1, 11, 2) : ttl = i + ttl print(ttl) ``` 25 ```python odd_num = list(range(1, 11, 2)) print(odd_num) ``` [1, 3, 5, 7, 9] ```python even_num = list(range(2, 11, 2)) print(even_num) ``` [2, 4, 6, 8, 10] ```python n = 10 a = 3 b = 5 ttl = 0 for i in range(1,10001) : if (i % 3 == 0 or i % 5 == 0) : ttl = i + ttl print(ttl) ``` 23341668 ```python a = 2 b = 9 for i in range(1, b + 1) : print(a, "*", i, "=", a * i) print(i, a, b) ``` 2 * 1 = 2 1 2 9 2 * 2 = 4 2 2 9 2 * 3 = 6 3 2 9 2 * 4 = 8 4 2 9 2 * 5 = 10 5 2 9 2 * 6 = 12 6 2 9 2 * 7 = 14 7 2 9 2 * 8 = 16 8 2 9 2 * 9 = 18 9 2 9 ```python a = 9 b = 9 for j in range(2, 9 + 1) : print("This is the multiplication of ", j) for i in range(1, b +1) : print( j, "*", i, "=" , j * i) ``` This is the multiplication of 2 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 This is the multiplication of 3 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 This is the multiplication of 4 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 This is the multiplication of 5 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 This is the multiplication of 6 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 This is the multiplication of 7 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 This is the multiplication of 8 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 This is the multiplication of 9 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 ###### {綜合演練} <pre> 實作4 : 小杰在for迴圈中使用or運算 if( i % 3 ==0 or i % 7 ==0), 求出數值 1~100中,所有是3或7倍數的數之總和</pre> ```python sum=0 for i in range(0,101): if (i%3==0 or i%7==0): sum += i print("數值 1~100 中,所有是 3 或 7 倍數的數之總和 =",sum) ``` 數值 1~100 中,所有是 3 或 7 倍數的數之總和 = 2208 <pre> 實作5: 一個正整數除了1和自己外,無法再被其他數整除,這個數就是質數。 請輸入一正整數,列出此數的所有正因數,並判斷使數字是否為質數</pre> ```python p=1 counter=0 n = int(input("請輸入正整數:")) print(n,"的因數有",end=" ") while (p<=n): if (n%p==0): print(p,end=" ") counter+=1 p+=1 print() if (counter==2): print(n,"是質數") else: print(n,"不是質數") ``` 請輸入正整數:10 10 的因數有 1 2 5 10 10 不是質數 #### 【afterclass practice】 1. 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell ) 2. 教學影音 lesson 9 1. 執行下列程式,下列結果何者正確? list1 = range(5) print(list(list1)) (A) [1, 2, 3, 4] (B) [ 1, 2, 3, 4,5] (C) [0, 1, 2, 3, 4] (D) [0, 1, 2, 3, 4,5] Ans:( C ) 2. 執行下列程式,下列結果何者正確? list1=range(6,0,-2) print(list(list1)) (A) [6, 4, 2] (B) [6, 0, -2] (C) [6, 4, 2, 0] (D) [6, 4, 2, 0, -2] Ans:( A ) 3. 執行下列程式,結束迴圈後,n 的值為多少? for n in range(1,5,2): print(n,end=" ") print("結束迴圈後 n=",n) (A) 1 (B) 3 (C) 5 (D) 7 Ans:( B ) 4. 執行 for 廻圈時,如果想要提前離開廻圈,應使用何種指令? (A) break (B) return (C) exit (D) pause Ans:( A ) 5. 執行下列程式,下列結果何者正確? list1 = range(5,-1,-2) print(list(list1)) (A) [5,-1,-2] (B) [ 5,4,3,2,1,0,-1] (C) [5, 3, 1] (D) [5,3,1,-1] Ans:( C ) 6. while 廻圈若一開始測試條件就不成立,則 while 內程式區塊將會如何處理? (A) 執行一次 (B) 一次都不執行 (C) 重複執行 (D) 編譯錯誤 Ans:( B ) 7. 下列那一個指令可在廻圈中跳過後面的敘述直接回到廻圈的開頭? (A) exit (B) return (C) pause (D) continue Ans:( D ) 8. 執行下列程式,結束迴圈後,sum 的值為多少? sum = 0 n=8 for i in range(1, n+1,2): sum += i print(sum) (A) 8 (B) 9 (C) 16 (D) 28 Ans:( C ) 9. 執行下列程式,可看到多少個「#」字? n=5 for i in range(1,n): for j in range(1,i+1): print("#", end="") print() (A) 5 (B) 6 C) 7 (D) 10 Ans:( D ) 10. 執行下列程式,結束迴圈後,total 的值為多少? total = i = 1 n=5 while(i<=n): total *= i i+=1 print(total) (A) 5 (B) 24 (C) 120 (D) 720 Ans:( C ) ```python #1.執行下列程式,下列結果何者正確? list1 = range(5) print(list(list1)) ``` [0, 1, 2, 3, 4] ```python #2.執行下列程式,下列結果何者正確? list1=range(6,0,-2) print(list(list1)) ``` [6, 4, 2] ```python #3.執行下列程式,結束迴圈後,n 的值為多少? for n in range(1,5,2): print(n,end=" ") print("結束迴圈後 n=",n) ``` 1 3 結束迴圈後 n= 3 ```python #5.執行下列程式,下列結果何者正確? list1 = range(5,-1,-2) print(list(list1)) ``` [5, 3, 1] ```python #8.執行下列程式,結束迴圈後,sum 的值為多少? sum = 0 n=8 for i in range(1, n+1,2): sum += i print(sum) ``` 16 ```python #9.執行下列程式,可看到多少個「#」字? n=5 for i in range(1,n): for j in range(1,i+1): print("#", end="") print() ``` # ## ### #### ```python #10.執行下列程式,結束迴圈後,total 的值為多少? total = i = 1 n=5 while(i<=n): total *= i i+=1 print(total) ``` 120 #### 【self practice】 ```python for i in range(1, 10): for j in range(1, 10): result = i * j print(f"{i} * {j} = {result}") ``` 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 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 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81