---
# System prepended metadata

title: 上課重點筆記DAY2
tags: [APCS檢定營隊]

---

###### 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)
```
