# Python班 ## 12/22社課 ---- 今日課程 * 遞迴 * print & input * if * for * list ---- ## 遞迴 ---- 遞迴函式是一種自我呼叫的運算型函式 ```python= def f(x): if x == 1: #終止條件 return 2 return f(x-1)*2 print(f(3)) ``` $f(3)$ =$f(2)$ x $2$ =$f(1)$ x $2$ x $2$ =$2$ x $2$ x $2$ =$8$ ---- ## 練習1 1. 以遞迴函式實作 $n^n(n\in N)$ 計算器 2. 以遞迴函式實作 $n!(n\in N)$ 計算器 ---- ### 型別 型別指的就是變數的「類型」。大致上有四種。 * 「整數(Integer, int)」 * 「浮點數(Float, float)」 * 「布林值(Boolean value, bool)」 * 「字串(String, str)」 \ 每種都有各自可以做的事情。 ---- ### 變數輸出 ```python= print("Hello crc") s = "Hello World" a = 1 print(s,a) """ Hello crc Hello world 1 """ ``` ---- ### seperate & end ```python= a=123 s="Hello" print(a,s,sep="!") print(a,end="crc") print(s) ''' 123!Hello 123crcHello ''' ``` ---- ### 輸入 ```python= a=int(input()) f=float(input()) b=input() print(a,f,b) ``` Q: b的型別是什麼? ---- ### 多個變數同行輸入 ```python= a,b,c=map(int,input().split()) print(a) print(b) print(c) """ 9 2 1 9 2 1 """ ``` ## 這很重要可以直接背起來 ---- ### 練習1 在同一行輸入3個數字後,輸出時以","分隔 ---- ### if() ```python= a=int(input()) if(a==1): print("yes") elif(a==0): print("0") else: print("no") ``` ## 冒號很重要,記得要縮排 ---- ### 練習2 在同一行輸入3個數字後,由大到小輸出並以","分隔 ---- ### for迴圈 ```python= for i in range(3): print("Merry Christmas!") print(i) ''' Merry Christmas! 0 Merry Christmas! 1 Merry Christmas! 2 ''' ``` ## 注意:起始值為0並指會執行到i-1 ---- ### 設定迴圈的各項數值 ```python= for i in range (s,e,k): # s為開始數字 # e為結束數字 # 若i==e,不會執行 # k為每次加減多少 ``` ---- ### while迴圈 ```python= a=10 b=20 while(b>=a): print(b,a) b-=2 # 20 10 # 18 10 # 16 10 # 14 10 # 12 10 # 10 10 ``` ## 搭配條件判斷的迴圈 ---- ### break & continue ```python= for i in range(10): if (i==5): break print(i) # 0 # 1 # 2 # 3 # 4 ``` break ----直接中斷迴圈 且break後面的程式碼都不會執行 ---- ```python= for i in range(10): if (i==5): continue print(i) # 0 # 1 # 2 # 3 # 4 # 6 # 7 # 8 # 9 ``` continue ----跳過continue以後的程式碼 直接跳到下一次迴圈 ---- ### 巢狀迴圈 ```python= for i in range(3): for j in range(3): print(i,j) ''' 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 ''' ``` ## 小迴圈執行一輪後,i才會+1 ---- ### 練習3 熟悉的99乘法表,再做一次吧! ---- ### 串列 ```python= list1=[1,2,3] print(list1) list1.append(10) print(list1) list1.pop(0) print(list1) ''' [1, 2, 3] [1, 2, 3, 10] [2, 3, 10] ''' ``` ---- ### for & list ```python= LIST = [1,2,3,4] for i in LIST: print(i) ''' Output 1 2 3 4 ''' ``` ---- ### list input ```python= list1=list(map(int,input().split())) for i in list1: print(i) ``` ---- ### 二維串列 ```python= list1=[[1,2,3,4],[11,22,33,44],[111,222,333,444]] for i in list1: print(i) for i in list1: for j in i: print(j) ''' [1, 2, 3, 4] [11, 22, 33, 44] [111, 222, 333, 444] 1 2 3 4 11 22 33 44 111 222 333 444 ''' ``` ---- ### 練習4 輸入一個串列(整數組成),幫我輸出,全部的總和,最大的數字和最小的數字。
{"description":"type: slide","title":"12/22","contributors":"[{\"id\":\"8447d62f-b77b-4e5c-80cf-0392360451ef\",\"add\":2991,\"del\":8337},{\"id\":\"e0c7dab8-be31-4e15-a8e7-22968131e3e1\",\"add\":1252,\"del\":13}]"}
    104 views