---
# System prepended metadata

title: 資研 11/24 社課講義
tags: [社課講義, 資研]

---

# 資研 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/)