---
###### tags: `資訊之芽`
---
# For 迴圈
---
## 大綱
- 初次見面/簡單介紹
- 認識長相/基礎語法
- 增加好感度/練習題
- 帶回家玩/回家作業
---
## 初次見面
以往語法都是做一件事情寫一行code
要是今天想要四萬萬次事情 那要寫到什麼時候...
*註:四萬萬次為$10^{8}$次*
*不重要:據說清朝時期人口約為四萬萬人*
----
## 初次見面
```python=
print(0)
print(1)
print(2)
print(3)
print(4)
print(5)
print("這樣很笨qq")
```
----
## 初次見面
想像有好幾段程式都是在做類似的事情
只要注意每段之間不一樣的地方
![](https://i.imgur.com/6HO9vbb.png)
----
## 初次見面
一個用膝蓋想都會的例子
```python=
for i in [1,2,3,4,5]:
print(i,end=" ") # 每個回合都會跑的
# 1 2 3 4 5
```
---
## 認識長相
```python=
for i in [...]:
# do things with i
```
注意:冒號、縮排、變數名稱、邏輯
----
## 認識長相
秘訣:
將不同的地方記錄在 方括號中
將相同的地方寫在 For迴圈中
----
## 認識長相
![](https://i.imgur.com/lcTbFI5.png)
----
## 省力的方括號寫法
range(3)
可以想成 \[0,1,2\]
```python=
>>> range(3)
range(0,3)
>>> list(range(3))
[0,1,2]
```
----
## 省力的方括號寫法
range 通則
- range(start,end,step) => \[start,end\)整數 每step個輸出一個
- 只能放整數!
- 預設start = 0, step = 1
```python=
>>>range(3)
range(0,3)
```
----
## 省力的方括號寫法
萬一沒有給足三個數字...
```python=
range(end) # start = 0 step = 1
range(start,end) # step = 1
range(start,end,step)
```
----
## 省力的方括號寫法
range(首項,結尾,公差)
```python=
range(5) # 0,1,2,3,4
range(1,5) # 1,2,3,4
range(1,5,1) # 1,2,3,4
range(1,10) # 1,2,3,4,5,6,7,8,9
range(1,10,3) # 1,4,7
range(1,7,2) # 1,3,5
預設首項為0 公差為1
```
----
## for + range範例
輸出1~10
```python=
for i in range(1,11):
print(i)
```
----
## for + range範例
輸出1到10所有的奇數(1 3 5 7 9)
----
## for + range範例
輸出1到10所有的奇數(1 3 5 7 9)
```python=
for j in range(1,10,2):
print(j)
```
----
## for + range範例
[Neoj3020](https://neoj.sprout.tw/problem/3020/)
----
## for + range範例
輸出五個完全平方數(1 4 9 16 25)
----
## for + range範例
輸出五個完全平方數(1 4 9 16 25)
```python=
for num in range(1,6):
print(num*num)
```
----
## for + range範例
輸出五個完全平方數(1 4 9 16 25)
並且輸出該數字為奇數還是偶數
```
1
奇數
4
偶數
9
奇數
.
.
.
```
----
## for + range範例
輸出五個完全平方數(1 4 9 16 25)
並且輸出該數字為奇數還是偶數
```python=
for n in range(1,6):
print(n * n)
if n % 2 != 0:
print("奇數")
else:
print("偶數")
```
---
## for + string範例
逐個輸出一個字串的字母
```python=
a = input()
for i in a:
print(i)
```
----
## for + range範例
重複做n次
```python=
penalty = '不可以在再不分'
for i in range(10):
print(penalty)
```
----
## 小整理一下
可以放在for i in [???] 的東西:
- range()
- string
- list
- 陸續增加中...~~付費解鎖更多內容~~
----
## for中有for
```python=
for i in range(3):
print('i:',i)
for j in range(10,12):
print("j:",j)
```
----
## 增加好感度 練習題
- 練習題:依照位置輸出2\*3矩陣的index值
輸出:
```
11 12 13
21 22 23
```
----
## for 練習題答案
```python=
for i in '12':
for j in '123':
print(i+j,end=' ')
print('') # 換行
```
----
## 增加好感度 練習題
- 練習題:輸入數字n
輸出n\*n乘法表
----
## for 練習題答案
```python=
n = int(input())
for i in range(1,n+1):
for j in range(1,n+1):
print(f"{i} * {j} = {i*j}") # 2 * 3 = 6
```
---
## 好康大放送
```python=
for i in range(5):
if(i % 2):
break/continue/pass
print(i)
# 0
# 0 2 4
# 0 1 2 3 4
```
---
## 帶回家玩
回家練習:
- 用For寫看看! https://neoj.sprout.tw/problem/3019/
回家作業:
- https://neoj.sprout.tw/problem/3031/
{"metaMigratedAt":"2023-06-16T19:42:58.639Z","metaMigratedFrom":"Content","title":"For 迴圈","breaks":true,"contributors":"[{\"id\":\"9a14c697-53b2-4214-a12a-512e946e0176\",\"add\":4716,\"del\":1631}]"}