## wk05_1005_ch04_迴圈
4.1 range 函式
認識 range 函式
range 函式的語法
4.2 for 迴圈
巢狀 for 迴圈
break 命令
continue 命令
4.3 while 迴圈
## 【inclass practice】
{範例}
1. 觀察各種不同參數的以range()建立的數列 <range>
2. 顯示正整數數列 <numshow>
3. 計算正整數總和 <numtotal>
4. #字直角三角形 <fornest>
5. 九九乘法表 <ninenine>
6. 最小公倍數 <multiple>
7. 顯示正整數數列,排除5的倍數 <except5>
8. while迴圈計算階乘 <while>
```python
print("*"*3)
```
***
```python
c1 = "amanda"
c2 = "Thor"
c3 = "Peter"
c4 = "Chanel"
c = ["amanda","Thor","Peter","Chanel"]
print(c1,c2,c3,c4)
print(c)
type(c)
```
amanda Thor Peter Chanel
['amanda', 'Thor', 'Peter', 'Chanel']
list
```python
for i in [1,2,3,4,5]:
print("$"*i)
```
$
$$
$$$
$$$$
$$$$$
```python
list(range(10))
```
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
```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
print(ttl)
```
55
```python
n=10
ttl=0
for i in range (1,10000,2):
ttl+=i
print(ttl)
```
25000000
```python
n= int(input("enter your n :"))
ttl=0
for i in range (1,n+1,2):
ttl+=i
print(ttl)
```
enter your n :10000
25000000
```python
n=int(input("範圍1~:"))
a=int(input("被多少整除"))
b=int(input("被多少整除"))
ttl=0
for i in range (n):
if (i%a==0 or i%b==0):
ttl+=i
print(ttl)
```
範圍1~:10000
被多少整除2
被多少整除5
29995000
```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
### {綜合演練}
1. 實作4 :
小杰在for迴圈中使用or運算 if( i % 3 ==0 or i % 7 ==0),
求出數值 1~100中,所有是3或7倍數的數之總和
```python
sum=0
for i in range (1,101):
if i % 3 ==0 or i % 7 ==0 :
sum+=i
print(sum)
```
2208
2. 實作5:
一個正整數除了1和自己外,無法再被其他數整除,這個數就是質數。
請輸入一正整數,列出此數的所有正因數,並判斷使數字是否為質數
```python
a=int(input("請輸入數字:"))
b=0
c=[1]
for i in range (2,a) :
if a%i == 0 :
c.append(i)
c.append(a)
if len(c) != 2:
print("非質數")
else :
print("質數")
print(a,"的所有正因數為:",c)
```
請輸入數字:97
質數
97 的所有正因數為: [1, 97]
## 【afterclass practice】
( 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]
```python
list1 = range(5)
print(list(list1))
```
[0, 1, 2, 3, 4]
( A ) 2. 執行下列程式,下列結果何者正確?
(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 的值為多少?
(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. 執行下列程式,下列結果何者正確?
(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 的值為多少?
(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. 執行下列程式,可看到多少個「#」字?
(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 的值為多少?
(A) 5 (B) 24 (C) 120 (D) 720
```python
total = i = 1
n=5
while(i<=n):
total *= i
i+=1
print(total)
```
120