## wk05_1005
## 【inclass practice】
### 【ch04_迴圈】
- 4.1 range 函式
1. 認識 range 函式
2. range 函式的語法
- 4.2 for 迴圈
1. 巢狀 for 迴圈
2. break 命令
3. continue 命令
- 4.3 while 迴圈
### {範例}
1. 觀察各種不同參數的以range()建立的數列 <range>
2. 顯示正整數數列 <numshow>
3. 計算正整數總和 <numtotal>
4. #字直角三角形 <fornest>
5. 九九乘法表 <ninenine>
6. 最小公倍數 <multiple>
7. 顯示正整數數列,排除5的倍數 <except5>
8. while迴圈計算階乘 <while>
```python
print("*")
print("**")
print("***")
print("****")
print("*****")
```
*
**
***
****
*****
```python
print("I love you" * 50)
```
I love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love youI love you
```python
print("*" * 1)
print("*" * 2)
print("*" * 3)
print("*" * 4)
print("*" * 5)
```
*
**
***
****
*****
```python
a = "*"
b = 500
print(a * b)
```
********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
```python
c1 = "王語蔚"
c2 = "陳筱涵"
c3 = "謝彤"
c = ["王語蔚", "陳筱涵", "謝彤"]
print(c1, c2, c3)
print(c)
print(type(c))
```
王語蔚 陳筱涵 謝彤
['王語蔚', '陳筱涵', '謝彤']
<class 'list'>
```python
print("*" * 1)
print("*" * 2)
print("*" * 3)
print("*" * 4)
print("*" * 5)
for i in [1, 2, 3, 4, 5] :
print("$*" * i)
```
*
**
***
****
*****
$*
$*$*
$*$*$*
$*$*$*$*
$*$*$*$*$*
```python
for i in [1, 2, 3, 4, 5] :
print("$*")
```
$*
$*
$*
$*
$*
```python
list(range(10))
```
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
```python
for i in range(1, 11) :
print("$*" * i)
```
$*
$*$*
$*$*$*
$*$*$*$*
$*$*$*$*$*
$*$*$*$*$*$*
$*$*$*$*$*$*$*
$*$*$*$*$*$*$*$*
$*$*$*$*$*$*$*$*$*
$*$*$*$*$*$*$*$*$*$*
```python
n = 10
total = 1
total = total + 2
total = total + 3
total = total + 4
total = total + 5
total = total + 6
total = total + 7
total = total + 8
total = total + 9
total = total + 10
print(total)
```
55
```python
n = 10
total = 0
for i in range(1, 11):
total = i + total
print(total)
```
55
```python
#單數加起來
n = 10
total = 0
for i in range(1, 11, 2):
total = i + total
print(total)
```
25
```python
#雙數加起來
n = 10
total = 0
for i in range(2, 11, 2):
total = i + total
print(total)
```
30
```python
n = int(input("enter your n :"))
total = 0
for i in range(1, n+1):
total = i + total
print(total)
```
enter your n :10
55
```python
#求出數值 1~10中,所有是3或5倍數的數之總和
n = 10
total = 0
for i in range(1, 11):
if (i % 3 == 0 or i % 5 == 0):
total = i + total
print(total)
```
33
```python
#求出數值 1~n中,所有是a或b倍數的數之總和
n = int(input("enter your n : "))
a = int(input("enter your a : "))
b = int(input("enter your b : "))
total = 0
for i in range(1, n+1):
if (i % a == 0 or i % b == 0):
total = i + total
print(total)
```
enter your n : 10
enter your a : 3
enter your b : 5
33
```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
```python
#九九乘法表
a = 2
b = 9
for j in range(2, 9 + 1):
print("這是", j, "的乘法")
for i in range(1, b+1) :
print(a, "*", i , "=", a * i)
```
這是 2 的乘法
這是 3 的乘法
這是 4 的乘法
這是 5 的乘法
這是 6 的乘法
這是 7 的乘法
這是 8 的乘法
這是 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
```python
#九九乘法表
a = 2
b = 9
for j in range(2, 9 + 1):
print("這是", j, "的乘法")
for i in range(1, b+1) :
print(j, "*", i , "=", j * i)
```
這是 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
這是 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
這是 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
這是 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
這是 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
這是 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
這是 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
這是 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
## 【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]
```python
list1 = range(5)
print(list(list1))
```
[0, 1, 2, 3, 4]
#### 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]
```python
list1 = range(6, 0, -2)
print(list(list1))
```
[6, 4, 2]
#### 3. 執行下列程式,結束迴圈後,n的值為多少?
for n in range(1, 5, 2):
print(n, end=" ")
print("結束迴圈後 n=", 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
#### 4. 執行for迴圈時,如果想要提前離開迴圈,應使用何種指令?
(A) break
(B) returm
(C) exit
(D) pause
答: (A) break
#### 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]
```python
list1 = range(5, -1, -2)
print(list(list1))
```
[5, 3, 1]
#### 6. while 迴圈若一開始測試條件就不成立,則 while 內程式區塊將會如何處理?
( A ) 執行一次
( B ) 一次都不執行
( C ) 重複執行
( D ) 編譯錯誤
答: (B) 一次都不執行
#### 7. 下列哪一個指令可在迴圈中跳過後面的敘述直接回到迴圈的開頭?
( A ) exit
( B ) returm
( C ) pause
( D ) continue
答: (D) continue
#### 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
```python
sum = 0
n = 8
for i in range(1, n+1, 2):
sum += i
print(sum)
```
16
#### 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
```python
n = 5
for i in range(1, n):
for j in range(1, i+1):
print("#", end="")
print()
```
#
##
###
####
#### 10. 執行下列程式,結束迴圈後,total 的值為多少?
total = i = 1
n = 5
while(i<=n):
total *= i
i+=1
print(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
#### 教學影音 lesson 9
```python
list1 = ["Apple", "Banana", "Cherry"]
for f in list1:
print(f)
```
Apple
Banana
Cherry
```python
total = 0
for n in range(1, 11):
total = total + n
print(total)
```
1
3
6
10
15
21
28
36
45
55
```python
total = 0
n = 0
while n <= 10:
total += n
n += 1
print(total)
```
55
```python
for i in range(1, 11):
if i == 4:
break
print(i, end=",")
```
1,2,3,
```python
for i in range(1, 11):
if i == 4:
continue
print(i, end=",")
```
1,2,3,5,6,7,8,9,10,
## 【self practice】
```python
#九九乘法表
a = int(input("enter your a : "))
b = int(input("enter your b : "))
for i in range(1, b+1) :
print(a, "*", i , "=", a * i)
```
enter your a : 2
enter your b : 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
### 實作題1
<pre>
小民以 range(2, 101, 2) 建立一個 2,4,...,100 的偶數數列,聰明的他就以 for 迴圈撰寫程式,計算2到100中所有偶數的總和。
```python
total = 0
for i in range(2, 101, 2):
total = i + total
print(total)
```
2550
```python
#座位挑戰
for i in [5, 4, 3, 2, 1] :
print("*" * i)
```
*****
****
***
**
*