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