---
# System prepended metadata

title: wk05

---

# wk05_1005_迴圈 許瀚仁
<pre>
4.1  range 函式

認識 range 函式
range 函式的語法
4.2  for 迴圈


巢狀 for 迴圈
break 命令
continue 命令
4.3 while 迴圈
</pre>



## 【Inclass】
print("**" * 3)

print("I love you. \n" * 3)
******
I love you. 
I love you. 
I love you. 

print("@" * 1)
print("@" * 2)
print("@" * 3)
print("@" * 4)
print("@" * 5)
@
@@
@@@
@@@@
@@@@@
for i in [1, 2, 3]:
    print("@" * i)
@
@@
@@@
a1 = 100
a2 = 100
a3 = 80

a_list = [100, 100, 80 ]

print(a1, a2, a3)
print(a_list[2])
100 100 80
80
n = 10

ttl = 0+1
ttl = ttl + 2
ttl = ttl + 3

print(ttl)
6
n = 10

ttl = 0
for i in [1,2,3,4,5,6,7,8,9,10]:
    ttl = ttl+i

print(ttl)
55
print(list(range(5)))
      
print(list(range(3,10)))

print(type(range(5)))

print(type(range(3,10)))
[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7, 8, 9]
<class 'range'>
<class 'range'>
n = int(input("請輸入想計算的階層數: "))

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

print(ttl)
請輸入想計算的階層數: 10
30
### {綜合演練}
#### 實作4
<pre>
小杰在for迴圈中使用or運算 if( i % 7 ==0 or i % 11 ==0)， 求出數
值 1~1000000中，所有是7或11倍數的數之總和
</pre>
<pre>
ttl = 0
for i in range (1,1000000):
    if( i % 7 ==0  or i % 11 ==0):
        ttl = ttl + i

print(ttl)
6493993506
ttl = 0
for i in range (1,1000000):
    if( i % 7 ==0  and i % 11 ==0):
        ttl = ttl + i

print(ttl)
a = 9
b = 9

for j in range(2, 9+1):
    print("這是", j, "的乘法")
    for i in range(1, 9+1):
        print(j,"*", i, "=", j * i)
</pre>
這是 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
<pre>
for i in range (5, 0, -1):
    print("*"* i)
</pre>
<pre>
*****
****
***
**
*
</pre>
## 【Afterclass practice】
### {綜合演練 ch04}
<pre>
( 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]
</pre>
list1 = range(5)
print(list(list1))
[0, 1, 2, 3, 4]
<pre>
( A ) 2. 執行下列程式，下列結果何者正確？
(A) [6, 4, 2] (B) [6, 0, -2] (C) [6, 4, 2, 0] (D) [6, 4, 2, 0, -2]
</pre>
list1=range(6,0,-2)
print(list(list1))
[6, 4, 2]
<pre>
( B ) 3. 執行下列程式，結束迴圈後，n 的值為多少？ (A) 1 (B) 3 (C) 5 (D) 7
</pre>
for n in range(1,5,2):
    print(n,end=" ") 
print("結束迴圈後 n=",n)
1 3 結束迴圈後 n= 3
<pre>
( A ) 4. 執行 for 廻圈時，如果想要提前離開廻圈，應使用何種指令？
(A) break (B) return (C) exit (D) pause
</pre>
num = 5
num **=3
print(num)
125
<pre>
( C ) 5. 執行下列程式，下列結果何者正確？
(A) [5,-1,-2] (B) [ 5,4,3,2,1,0,-1] (C) [5, 3, 1] (D) [5,3,1,-1]
</pre>
list1 = range(5,-1,-2) 
print(list(list1)) 
[5, 3, 1]
<pre>
( B ) 6. while 廻圈若一開始測試條件就不成立，則 while 內程式區塊將
會如何處理？ (A) 執行一次 (B) 一次都不執行 (C) 重複執行 (D) 編譯錯誤
</pre>
<pre>
( D ) 7. 下列那一個指令可在廻圈中跳過後面的敘述直接回到廻圈的開頭？
(A) exit (B) return (C) pause (D) continue
</pre>
<pre>
( C ) 8. 執行下列程式，結束迴圈後，sum 的值為多少？
(A) 8 (B) 9 (C) 16 (D) 28
</pre>
sum = 0
n=8
for i in range(1, n+1,2):
    sum += i
print(sum) 
16
<pre>
( D ) 9. 執行下列程式，可看到多少個「#」字？
(A) 5 (B) 6 (C) 7 (D) 10
</pre>
n=5
for i in range(1,n): 
    for j in range(1,i+1): 
        print("#", end="")
    print() 
<pre>
#
##
###
#### 
</pre>
<pre>
( C ) 10.執行下列程式，結束迴圈後，total 的值為多少？
(A) 5 (B) 24 (C) 120 (D) 720
</pre>
total = i = 1
n=5
while(i<=n):
    total *= i 
    i+=1 
print(total) 
120