# 資研 11/24 社課講義 [**提問表單**](https://forms.gle/z4dPC1JPV6uA2q9w7) [**上課PPT**](https://www.canva.com/design/DAF09dfvCM4/M1576DO_CQIU3UmHsPIVmQ/view?utm_content=DAF09dfvCM4&utm_campaign=designshare&utm_medium=link&utm_source=editor) --- ## For迴圈 For Loops ### 基本觀念 - 範例3. 詢問使用者要印出的邊長,並印出"正方形"(利用*) ```python= a = int(input('請輸入正方形的邊長:')) for i in range(a): print('*'*a) ``` ### 延伸 1. 控制迴圈程序:**continue**、**break**、**pass** > continue:出現時,不繼續執行下方迴圈內程式,而是回到迴圈一開始繼續執行 > break:出現時,直接結束迴圈 > pass:跳過不執行(多用於測試時) - 範例4. 請印出1~5跳過3不印 ```python= for i in range(1, 6): if i == 3: continue print(i) ``` - 範例5. 請使用者輸入1個數字,從1開始印到該數的一半時停止(無條件進位) ```python= a = int(input('請輸入一個數字:')) b = a//2+1 # 設定為該數的一半加一->配合range()不輸出最後一個的特性 for i in range(1, a): if i == b: break # 符合條件->停止迴圈 else: print(i) ``` 2. 雙重迴圈:有2個變數同時迭代 - 範例6. 印出"九九乘法表" :::warning - '\t':讓輸出變整齊 - 雙重迴圈->類似於n宮格的概念 ::: ```python= for i in range(1, 10): for j in range(1, 10): print(f'{i}*{j}={i*j}', end='\t') print() ``` --- ## While迴圈 While Loops 1. 基本架構 ```python= while '條件式': '要執行的程式碼' ``` 2. 和for迴圈作用相似,主要使用時機為<font color="#CE0000">**不知道確切要執行幾次時**</font> 3. <font color="#CE0000">**也可**</font>使用`continue`、`break`、`pass`控制執行條件 ```python= i = 0 while i<2: i += 1 print(i) ``` :::warning **常見使用情景-多次輸入** - 範例1.請你寫一個程式,當使用者輸入一個數字就回傳該數的平方,若輸入0則該程式停止 ```python= while True: a = int(input()) if a == 0: break else: print(a**2) ``` ::: - 範例2.請利用while loops計算1+2+3+4+5+...+n<2023,n最大為多少 ```python= i = 1 s = 0 while s+i < 2023: s += i i += 1 print(s, i) ``` --- ## **練習題** **Zerojudge** [**連結**](https://zerojudge.tw/) --- ## 補充資料 **推薦網站:**[**W3Schools**](https://www.w3schools.com/)