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