---
# System prepended metadata

title: wk05_1005_迴圈

---

# wk05_1005_迴圈
<pre>
4.1  range 函式
    1. 認識 range 函式
    2. range 函式的語法

4.2  for 迴圈
    1. 巢狀 for 迴圈
    2. break 命令
    3. continue 命令
    
4.3 while 迴圈
<pre/>

### {範例}
1. 觀察各種不同參數的以range()建立的數列 <range>
2. 顯示正整數數列 <numshow>
3. 計算正整數總和 <numtotal>
4. #字直角三角形 <fornest>
5. 九九乘法表 <ninenine>
6. 最小公倍數 <multiple>
7. 顯示正整數數列，排除5的倍數 <except5>
8. while迴圈計算階乘 <while>

## 【inclass practice】


```python
print("*")
print("**")
print("***")
print("****")
print("*****")
```

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


```python
print("Hello " * 10)
```

    Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello 
    


```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] :
    print("$*" * i)
```

    *
    **
    ***
    ****
    *****
    $*
    $*$*
    $*$*$*
    $*$*$*$*
    $*$*$*$*$*
    $*$*$*$*$*$*
    


```python
list(range(10))
```




    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]




```python
list(range(1, 10, 2))
```




    [1, 3, 5, 7, 9]




```python
for i in range(1, 11) :
    print("$" * i)
    
#range(10)第一行是空的
```

    $
    $$
    $$$
    $$$$
    $$$$$
    $$$$$$
    $$$$$$$
    $$$$$$$$
    $$$$$$$$$
    $$$$$$$$$$
    


```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, 10001) :
    ttl = i + ttl
    
print(ttl)
```

    50005000
    


```python
ttl = 0
for i in range(1, 11, 2) :
    ttl = i + ttl
    
print(ttl)

#奇數和
```

    25
    


```python
ttl = 0
for i in range(2, 11, 2) :
    ttl = i + ttl
    
print(ttl)

#偶數和
```

    30
    


```python
n = int(input("entry your n = "))

ttl = 10
for i in range(1, n+1, 2) :
    ttl = i + ttl
    
print(ttl)
```

    entry your n = 500
    62510
    


```python
n = 10
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)
```

    請輸入除數 = 3
    請輸入除數 = 5
    33
    


```python
a = 8
b = 9

for j in range(2, 9+1) :
    print("這是", j , "的乘法")

for i in range(1, b+1) :
    print(a, "*", i, "=", a * i)
    
#print("2 * 1 = 2")
#print("2 * 2 = 4")
```

    這是 2 的乘法
    這是 3 的乘法
    這是 4 的乘法
    這是 5 的乘法
    這是 6 的乘法
    這是 7 的乘法
    這是 8 的乘法
    這是 9 的乘法
    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
    


```python
for j in range(2, 9+1) :
    print("這是", j , "的乘法")
    for i in range(1, 9+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
    

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

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

## 【afterclass practice】

1. 綜合演練 選擇題1-10  (需抄題在markdown cell ; 有程式碼的題目要有code cell )
2. 教學影音 lesson 9

( 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
    
