---
# System prepended metadata

title: wk05_1005_ch04
tags: [python]

---

# wk05_1005_ch04_陳姿頴

4.1  range 函式
1. 認識 range 函式
2. range 函式的語法
4.2  for 迴圈
1. 巢狀 for 迴圈
2. break 命令
3. continue 命令
4.3 while 迴圈


## 【inclass practice】
### 範例


```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 = "小狗"
c4 = "小鴨"

c = ["小貓", "小鳥", "小狗", "小鴨"]

print(type(c))

print(c1,c2,c3,c4)

print(c * 10)
```

    <class 'list'>
    小貓 小鳥 小狗 小鴨
    ['小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨', '小貓', '小鳥', '小狗', '小鴨']
    


```python
print("*" * 1)
print("*" * 2)
print("*" * 3)
print("*" * 4)
print("*" * 5)

# 直角三角形
for i in [1,2,3,4,5,6,7,8,9,10]:
    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

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 = int(input("enter your n "))

n=10

ttl = 0 
for i in range(1, n+1, 2): #奇數
    ttl = i + ttl

print(ttl)
```

    25
    


```python
n = 10

ttl = 0 
for i in range(2,10001,2): #雙數
    ttl = i + ttl

print(ttl)
```

    25005000
    


```python
n = int(input("請輸入 n "))
a = int(input("請輸入除數"))
b = int(input("請輸入除數"))

ttl = 0 
for i in range(1,11):
    if (i % a == 0 or i % b == 0):
        ttl = i + ttl

print(ttl)
```

    請輸入 n 10
    請輸入除數5
    請輸入除數3
    33
    


```python
a = 9
b = 9

for j in range(2, 9+1):
    print("這是", j, "的乘法")
    for i in range(1, b+1 ):
        print(j, "*", i , "=", j * i)
    
# print("2*1 = 2")
# print("2*2 = 4")
```

    這是 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
    

### {綜合演練}
實作5
一個正整數除了1和自己外，無法再被其他數整除，這個數就是質數。
請輸入一正整數，列出此數的所有正因數，並判斷使數字是否為質數

## 【afterclass practice】
1. 綜合演練 選擇題1-10  (需抄題在markdown cell ; 有程式碼的題目要有code cell )

#### ( C ) 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]
    

#### ( A ) 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]
    

#### ( B ) 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
    

#### ( A ) 4. 執行 for 廻圈時，如果想要提前離開廻圈，應使用何種指令？

(A) break (B) return (C) exit (D) pause

#### ( C ) 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]
    

#### ( B ) 6. while 廻圈若一開始測試條件就不成立，則 while 內程式區塊將會如何處理？

(A) 執行一次 (B) 一次都不執行 (C) 重複執行 (D) 編譯錯誤

#### ( D ) 7. 下列那一個指令可在廻圈中跳過後面的敘述直接回到廻圈的開頭？

(A) exit (B) return (C) pause (D) continue

#### ( C ) 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
    

#### ( D ) 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()
```

    ##########
    

#### ( C ) 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
    

2. 教學影音 lesson 9

## 【self practice】
### 1005課程延伸_座位挑戰


```python
for i in range(5, 0, -1):
    print ("* " * i)
```

    * * * * * 
    * * * * 
    * * * 
    * * 
    * 
    

### {綜合演練}
實作4
小杰在for迴圈中使用or運算 if( i % 3 ==0  or i % 7 ==0)，
求出數值 1~100中，所有是3或7倍數的數之總和


```python
ttl = 0
for i in range(1,100):
    if ( i % 3 ==0  or i % 7 ==0):
        ttl = i + ttl
        
print(ttl)
```

    2208
    
