{%hackmd @themes/orangeheart %} ## wk06_1012_迴圈 ### 醫放三 B1003210 應雨岑 1. break 命令 2. continue 命令 3. while ## [ INCLASS PRACTICE ] ## 今日課程內容 <pre> 4.2 for 迴圈 -break 命令 -continue 命令 4.3 while 迴圈 </pre> ## NOTE <pre> break會跳出這個迴圈 continue跳出執行這個code 繼續執行下一個i的程式 None 為一個什麼都沒有的數字,但是他可以做加減乘除的運算 </pre> ```python #使用者輸入一個數字,但不要印出5的倍數 n=int(input("請輸入一個數字")) for i in range(1,n+1): if(i%5!=0): print(i) #另解:使用continue for i in range(1,n+1): if i%5==0: continue print(i) ``` 請輸入一個數字8 1 2 3 4 6 7 8 1 2 3 4 6 7 8 ```python #遇到9就停 n=int(input("請輸入一數字")) for i in range(1,n+1): if i==9: break print(i) ``` 請輸入一數字68 1 2 3 4 5 6 7 8 ```python #最小公倍數 a=int(input("請輸入第一個數字")) b=int(input("請輸入第二個數字")) max=a*b for i in range(1,max+1): if i%a==0 and i%b==0: break print("[%d,%d]=%d"%(a,b,i)) ``` 請輸入第一個數字6 請輸入第二個數字48 [6,48]=48 ```python #階層 n=int(input("請輸入數字")) ans=1 i=1 while (i<=n): ans=ans*i # print(i) #測試是否有錯誤 i+=1 print(n,"! =",ans) ``` 請輸入數字8 8 ! = 40320 ```python num= 6 ans=1 n=0 while n<num: print(n) n=n+1 ans=ans*n print(num,"!=",ans) ``` 0 1 2 3 4 5 6 != 720 ```python """ 實作5: 一個正整數除了1和自己外,無法再被其他數整除,這個數就是質數。 請輸入一正整數,列出此數的所有正因數,並判斷使數字是否為質數 """ aa=int(input("請輸入一正整數")) count=0 print("因數有\n1") for i in range(2,aa): if aa%i!=0: #不整除 count+=0 else: count+=1 print(i) if count==0: print(aa,"\n因為除了1和自己外,無法再被其他數整除,所以是質數") else: print(aa,"\n不是質數") ``` 請輸入一正整數50 因數有 1 2 5 10 25 50 不是質數 ```python n=15 p=1 counter=0 while(p<=n): if n%p==0: #有因數 counter+=1 p+=1 if counter>2: print("合數") else: print("質數") print("其中有%d個因數"%(counter)) ``` 合數 其中有4個因數 ```python """ 猜數字遊戲: 寫一個程式,隨機選擇一個1到100的數字,然後要求玩家通過輸入猜測該數字,直到猜對為止。使用while迴圈來實現,並在玩家猜對時結束遊戲。 """ 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的數字:54 太高了!再猜一次。 請猜一個1到100的數字:24 太高了!再猜一次。 請猜一個1到100的數字:2 恭喜!你猜對了,答案是2。你總共猜了3次。 ```python import random # 生成隨機數字 target_number = random.randint(1, 100) #target_number = 26 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的數字:54 太高了!再猜一次。 請猜一個1到100的數字:21 太低了!再猜一次。 請猜一個1到100的數字:34 太低了!再猜一次。 請猜一個1到100的數字:39 太低了!再猜一次。 請猜一個1到100的數字:48 恭喜!你猜對了,答案是48。 ```python """累積加法:寫一個程式,要求使用者不斷輸入整數,並使用while迴圈計算這些整數的總和。當使用者輸入0時,停止接受輸入並印出總和。""" total = 0 while True: num = int(input("請輸入一個整數(輸入0結束):")) if num == 0: break total += num print(f"總和:{total}") ``` 請輸入一個整數(輸入0結束):5 請輸入一個整數(輸入0結束):4 請輸入一個整數(輸入0結束):7 請輸入一個整數(輸入0結束):6 請輸入一個整數(輸入0結束):0 總和:22 ```python """倒數計時器:寫一個程式,請求使用者輸入一個正整數作為倒數計時的秒數,然後使用while迴圈從輸入的秒數倒數到0。在每個秒數的間隔打印出剩餘的秒數。""" import time countdown = int(input("請輸入倒數的秒數:")) while countdown > 0: print(countdown) time.sleep(1) countdown -= 1 print("時間到!") ``` 請輸入倒數的秒數:4 4 3 2 1 時間到! ```python """使用者輸入:寫一個程式,要求使用者輸入一個整數,然後使用while迴圈,只有當輸入的數字是正整數時,才停止請求輸入。如果輸入不是正整數,則繼續要求輸入,直到收到正確的輸入。 """ 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}") ``` 請輸入一個正整數:7.4 請輸入正確的整數。 請輸入一個正整數:4 您輸入了正整數:4 ## 全部的note <pre> 計算符號之間可以加空白鍵 <br> ** : 幾次方<br> sep="." : 分隔符號為. end="/" : 結束用/結束 在print內寫入%d : 放入參數答案 (最後在答案要加%) %s : 放入的答案為字串 %f : 放入的答案包含全部小數點 %.1f : 包含 1位小數點 %.3f : 包含 3位小數點 寫法如下- print("身高為%d cm,體重為%d kg,BMI為%.1f " % (height,weight,bmi)) print("顯示的文字",參數名字)<br> my_height = input("請輸入身高(cm)") : 可以輸入文字進去對話框 使用者輸入的文字要轉換成"int" ()<br> print("姓名 成績") print("%3s %3d"%(name1,score1)) #按照字元數進行規則排列出一格表格格式 **次方 //整除的數 /除以 %餘數 and 放在兩個運算子中間,判斷True or False,當兩個都為True才會是True or 放在兩個運算子中間,判斷True or False,當兩個都為False才會是False if,else,elif需使用冒號:還有縮排來寫code .upper可以讓程式不用判斷大小寫 串列list用中括弧括起來 for和其他語法一樣,他同樣也是需要用到:還有縮排來寫程式 break會跳出這個迴圈 continue跳出執行這個code 繼續執行下一個i的程式 None 為一個什麼都沒有的數字,但是他可以做加減乘除的運算 </pre> ## [ afterclass practice ] > 1. 複習ch03、ch04 > 2. 教學影音 lesson 7、9 + ## 教學影音 lesson 7,9 這次的教學影片是前兩週給我們觀看的,透過影片讓我們複習在這兩周內我們所學到的東西 (if,for,while,break,and coutinue) ## [ self practice ] * 綜合演練1 in-line 上課習題的註解 ```python #以for迴圈計算1-100中所有基數總和 sum=0 for i in range(1,101,2): sum= sum+i print("所有奇數總和為",sum) ``` 所有奇數總合為 2500 * 累積加法: ```python #寫一個程式,要求使用者不斷輸入整數,並使用while迴圈計算這些整數的總和。當使用者輸入0時,停止接受輸入並印出總和。 total = 0 #一開始要設定total的初始值 while True: #當正確時就會一直執行程式內的內容,錯誤才會離開 num = int(input("請輸入一個整數(輸入0結束):")) #請使用者輸入一個整數 if num == 0: # 當輸入的數字是0時 break # 就要停止接受輸入 total += num # 如果輸入數字不為0時,就要把輸入進來的數字做加總: total=原本的total+輸入進來的數字num print(f"總和:{total}") # 然後最後要印出總和 ``` 請輸入一個整數(輸入0結束):4 請輸入一個整數(輸入0結束):5 請輸入一個整數(輸入0結束):7 請輸入一個整數(輸入0結束):0 總和:16