---
# System prepended metadata

title: wk06_1012_迴圈(2)
tags: [大三上Python程式語言]

---

# wk06_1012_迴圈(2)

4.2 for 迴圈

1. break 命令
2. continue 命令

4.3 while 迴圈

## [Inclass Practice]


```python
# n = int (input("enter n"))

n=10

for i in range (1,n+1):
    if i % 5 ==0 : 
        continue #跳出5的倍數這一圈
    print(i)
```

    1
    2
    3
    4
    6
    7
    8
    9
    


```python
n=10000

for i in range (1,n+1):
    if i ==9 : 
        break #跳出迴圈
    print(i)
```

    1
    2
    3
    4
    5
    6
    7
    8
    


```python
a=int(input("輸入a值:"))
b=int(input("輸入b值:"))
maxnum = a*b
for i in range (1,maxnum+1):
    if i%a==0 and i %b==0 :
        break
print("最小公倍數為%d"%(i))
```

    輸入a值:6
    輸入b值:2
    最小公倍數為6
    


```python
total=i=1
n=int(input("請輸入正整數n的值:")) 
while (i<=n):
    total*=i
    i+=1
print("%d!=%d"%(n,total))
```

    請輸入正整數n的值:5
    5!=120
    

實作5:

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


```python
n=int(input("num:"))
p=1
counter =0

while p<=n:
    if n% p ==0 :
        counter=counter+1
    p=p+1
if counter >2 :
    ans="合數"
else :
    ans="質數"
print(n,ans,"有",counter,"個因數")    
```

    num:97
    97 質數 有 2 個因數
    


```python
import random

# 生成隨機數字
target_number = random.randint(1, 100)

guess = None #
attempts = 0

while guess != target_number:
    guess = int(input("請猜一個1到100的數字："))
    attempts += 1

    if guess < target_number:
        print("太低了！再猜一次。")
    elif guess > target_number:
        print("太高了！再猜一次。")

print(f"恭喜！你猜對了，答案是{target_number}。你總共猜了{attempts}次。")
```

    請猜一個1到100的數字：50
    太高了！再猜一次。
    請猜一個1到100的數字：38
    太高了！再猜一次。
    請猜一個1到100的數字：26
    太高了！再猜一次。
    請猜一個1到100的數字：13
    太高了！再猜一次。
    請猜一個1到100的數字：8
    太低了！再猜一次。
    請猜一個1到100的數字：10
    太高了！再猜一次。
    請猜一個1到100的數字：9
    恭喜！你猜對了，答案是9。你總共猜了7次。
    


```python
user_input = None

while not user_input:
    user_input = input("請輸入一個正整數：")
    if user_input.isdigit():
        user_input = int(user_input)
    else:
        user_input = None
        print("請輸入正確的整數。")

print(f"您輸入了正整數：{user_input}")
```

    請輸入一個正整數：2.5
    請輸入正確的整數。
    請輸入一個正整數：2.5
    請輸入正確的整數。
    請輸入一個正整數：4
    您輸入了正整數：4
    


```python
total = 0

while True: #一直持續的循環
    num = int(input("請輸入一個整數（輸入0結束）："))
    if num == 0:
        break
    total += num

print(f"總和：{total}")
```

    請輸入一個整數（輸入0結束）：3
    請輸入一個整數（輸入0結束）：6
    請輸入一個整數（輸入0結束）：0
    總和：9
    


```python
import time

countdown = int(input("請輸入倒數的秒數："))

while countdown > 0:      
    print(countdown)
    time.sleep(1) #酷喔!!
    countdown -= 1    
print("時間到！")
```

    請輸入倒數的秒數：10
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    時間到！
    


```python
import random

# 生成隨機數字
target_number = random.randint(1, 10)

guess = None

while guess != target_number:
    guess = int(input("請猜一個1到10的數字："))

    if guess < target_number:
        print("太低了！再猜一次。")
    elif guess > target_number:
        print("太高了！再猜一次。")

print(f"恭喜！你猜對了，答案是{target_number}。")
```

    請猜一個1到10的數字：5
    太低了！再猜一次。
    請猜一個1到10的數字：6
    恭喜！你猜對了，答案是6。
    

## [Self Practice]

利用for巢狀迴圈列出由2開始的九九乘法表


```python
for i in range(2,10):
    for j in range(2,10):
        product = i * j
        print("%d*%d=%2d   " % (i, j, product), end="")
    print()
```

    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*2= 6   3*3= 9   3*4=12   3*5=15   3*6=18   3*7=21   3*8=24   3*9=27   
    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*2=10   5*3=15   5*4=20   5*5=25   5*6=30   5*7=35   5*8=40   5*9=45   
    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*2=14   7*3=21   7*4=28   7*5=35   7*6=42   7*7=49   7*8=56   7*9=63   
    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*2=18   9*3=27   9*4=36   9*5=45   9*6=54   9*7=63   9*8=72   9*9=81   
    

請輸入一個正整數，列出所有政因數，並判斷此數字是否為質數?


```python
p=1
counter=0
n = int(input("請輸入正整數："))
print(n,"的因數有",end=" ")
while (p<=n):
    if (n%p==0):
        print(p,end=" ")
        counter+=1
    p+=1

print()    
if (counter==2):    
    print(n,"是質數")
else:
    print(n,"不是質數")
```

    請輸入正整數：17
    17 的因數有 1 17 
    17 是質數
    
