###### tags: `APCS檢定營隊`
# 上課重點筆記DAY2
## for
### 基本用法
```python=
for i in range(val):#最後面已依定要有:
pass #這裡前面一定要有tab
```
### 整體定義
#### range(val)
他會產生一個[0~val-1]的list
裡面項數剛好是val次,所有會做val次迴圈
而i是從0~val-1變化,每次加一
#### range(val1,val2)
他會產生一個[val1~va2-1]的list
裡面項數剛好是val2-val1次,所有會做val2-val1次迴圈
而i是從val1~va2-1變化,每次加一
#### range(val1,val2,val3)
他會產生一個[val1~va2-1]的list
裡面項數剛好是(val2-val1)//val3次,所有會做(val2-val1)//val3次迴圈
而i是從val1~va2-1變化,每次加val3
#### ex1
```python=
for i in range(10):
print(i)
````
#### ex2
```python=
for i in range(10,20):
print(i)
````
#### ex3
```python=
for i in range(1,10,3):
print(i)
````
## While
每次檢查條件是否成立,若成立就持續執行,但如果不成立即跳出
### 大略用法
```python=
while 條件:#最後一定要冒號
code#前面要tab
```
## Break/continue
### Break
功能:可以直接結束迴圈,無視條件
### Continue
功能:可以無視這次迴圈下面的程式碼,直接跳至下次迴圈
### 常見用法
```python=
while True:#無窮迴圈
input()
if 終止條件:
break
if 錯誤輸入:
continue
code
```
#### ex-code of 輾轉相除法
```python=
a = int(input())
b = int(input())
while True:
if a==0 or b==0:
break
if a>b:
a%=b
if b>a:
b%=a
if a==0
print(b)
else
print(a)
```
## Function
定義可以將一段code進行包裝,把模組分開,讓程式碼更好理解
```python=
def FunctionName(輸入參數,可不只一個):
執行的程式碼
return #如果有需要回傳請使用這個callback to main porgram,回傳數量可以很多
```
### ex-1
1+2+3.....+n
```python=
def cal(n):
ans = 0
for i in range(1,n+1):
ans+=i
a = int(input())
print(cal(a))
```
### ex-2
```python=
def gcd(a,b):
while True:
if a==0 or b==0:
break
if a>b:
a%=b
if b>a:
b%=a
if a==0
return b
else
return a
```
## print
### 詳細定義
print(變數,sep=間隔符號,end=變數輸出完要輸出甚麼)
#### ex:
輸入三個數字,將他一行輸出,間隔符號為hello,不換行
```python=
a = int(input())
b = int(input())
c = int(input())
print(a,b,c,sep='hello',end='')
```
## List
可以儲存更多變數的資料型別
靠索引取值
索引值從0開始
### 基本宣告
```python=
a = []
a = list()
a = [1,2,3,4,5]
```
### 基本使用教學
```python=
A = [1,2,3,4,5,6,7]
print(A[0])#輸出1
print(A[5])#輸出6
```
### 新增資料 .append(val)
#### ex-code
將val加入到最後面
```python=
A = []
A.append(1)
print(A)
```
### 插入資料 .insert(position,val)
將val加入到position這個位置
#### ex-code
```python=
A = [1,2,3,4,5,6,7,8,9,10]
A.insert(1,10)
print(A)
```
### 清除索引值 .pop(position)
#### ex-code
清除position這個位置的資料
```python=
A = [1,2,3,4,5,6,7,8,9,10]
A.pop(5)
print(A)
```
### 排序資料 .sort(reverse)
#### ex-code
排序資料,由小排到大
reverse可設為True就會變成由大排到小
```python=
A = [1,2,9,4,5,27,8,9,10]
A.sort
print(A)
```
### 連接list .extend(list)
#### ex-code
將list接到後面
```python=
A = [1,2,3,4,5,6,7,8,9,10]
A.extend([11,12,13,14,15])
print(A)
```