# 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 是質數