--- title: python班講義 --- # 112學年度附中電算 Python班 --- ## 第一學期上課內容 ### 9/1 體驗社課暨第一堂社課 [講義在這](https://hackmd.io/@158730Andy/BJKGMLja3#/) 內容:賦值與變數、型別、輸出、輸入 課堂練習&回家作業 1. 寫出一個程式輸出"Goodbye, world..." 2. 寫出一個程式,在輸入一段話後,會輸出該段話兩次,兩次的中間還會穿插一個"UwU" ### 9/8 體驗社課暨第二堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/B17QGUrC2#/) 內容:運算子、判斷式 課堂練習&回家作業 1. 請寫一個程式,讀入兩個數字,並求出它們的和、積(以逗號分隔)。 2. 請寫一個程式,輸入A、B、C,求出A的B次方除C 3. 判斷輸入值是否等於指示值。 ### 9/15 第三堂社課 [講義在這](https://hackmd.io/@158730Andy/HJuRerek6) 內容:條件判斷、迴圈、巢狀迴圈 課堂練習&回家作業 1. 用程式做出一種特殊的減法,使得輸入兩正整數a、b後,最後的輸出結果恆為一個非正整數。 2. 練習使用巢狀迴圈,來幫我們的社長運算下式。即:輸入\\(x\\),得到\\(f(x)\\)的值 \\[f(x)=1+(1+2)+\dots+(1+2+\dots+x)\\] 先用程式暴力硬解,閒暇之餘可以嘗試證明: \\[f(x)=\frac{1}{6}x(x+1)(x+2)\\] ### 9/22 第四堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/SJoCXRKJa#/) 內容:for迴圈、巢狀迴圈 課堂練習&回家作業 1. 設計一個迴圈程式,幫助她算出每個分數能上哪間學校,條件如下: 初始值設定為5分,每次增加0.2分,分數超過36分停止。 (**不存在**高分低就的現象) CK=34.6、HSNU=33.6 CG=31.6、HT=17.8 TS=12.8、YD=5.1 請幫我輸出分數和能考上的學校 2. 請輸出一個九九乘法表,若出現\\(n\times n\\),則替換為輸出低頭閉眼。 ### 9/29 中秋節 ### 10/6 段考前自習time ### 10/13 第五堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/H1Z1lHUZp) 內容:for迴圈、while迴圈、break&continue、無窮迴圈 課堂練習&回家作業 1. 輸入一個正整數n,依序輸出n的平方、三次方...,直到輸出的數字大於10000停止,並輸出最大數字為n的幾次方。 2. 印出無限次I love CRC ### 10/20 社內賽 [題本](https://hackmd.io/@harrisyu/SJHRH2yza) ### 10/27 社內賽題解暨頒獎 [題解](https://hackmd.io/@158730Andy/ByqpcS-za) ### 11/3 11/10 第六、第七堂社課 [講義在這](https://hackmd.io/@158730Andy/ryBMZ_Ofa) 內容:複習型別、複習條件判斷、複習迴圈、串列(list)介紹、append、map簡介 課堂練習&回家作業 1. 已知國立臺灣師範大學附屬高級中學目前共有3個年級,高二高三皆有26班,高一有25班請創造一個串列,使得裡面有從高三第一個班一直到高一最後一個班。(已知高二的第一個班叫做1582) 2. 承練習1,運用遍歷陣列的方式,找出你的班級,並將該格的值訂為字串My Class ### 11/17 第八堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/HkpDBdNVa) 內容:append & pop、多個變數的輸入、輸入串列、遍歷串列 課堂練習&回家作業 1. 現有一串列a=[1,5,8,8],今天想請你用迴圈判斷1到100中的奇偶數,若偵測到奇數,則將此奇數加入串列a中,若偵測到偶數則刪除串列a的第0項,最後輸出串列a 2. [兩光法師占卜術](https://zerojudge.tw/ShowProblem?problemid=a003) 3. [Eva 的回家作業](https://zerojudge.tw/ShowProblem?problemid=a005) 4. 輸入一個串列,請你印出這個串列有幾個元素 5. 現有一個串列a內有100個元素,分別為數字1-100,遍歷串列後,若偵測到完全平方數,則將那一項改為該數的正平方根,最後輸出串列a ### 11/24 段考前自習time ### 12/1 第九堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/rk4d9yvrT) 內容:二維串列、遍歷二維串列 課堂練習&回家作業 1. 第一行輸入一個數字n,代表接下來有n行,每行輸入一個串列(元素型態皆為整數),請把每行輸入的串列,加入到另一個大串列中,最後輸出大串列 2. 承上題,請幫我把大串列裡的數字分別印出來 3. [矩陣的翻轉](https://zerojudge.tw/ShowProblem?problemid=a015) ### 12/8 迷你馬拉松 ### 12/15 第十堂社課 [講義在這](https://hackmd.io/@158730Andy/By0bxfdI6) 內容:功能型函式、運算型函式、遞迴函式 課堂練習&回家作業 1. 在輸入一個正整數$N$後,請以$\texttt{for}$迴圈的方式,創建一個二維陣列,使得陣列長相如下: $a = [[1, n], [2, n-1], \dots , [n, 1], [n+1, 0]]$ 2. 承上題,請設計一個(運算型)函式$\texttt{f(h)}$,使得$\texttt{a[i]}$經過$\texttt{f(i)}$變換如下 $[j,\,k]\overset{f(i)}{\longrightarrow}[j\times k,\,k-1]$ 3. 以遞迴函式實作$n^n(n \in N)$計算器 4. 以遞迴函式實作$n!(n \in N)$計算器 ### 12/22 第十一堂社課 [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/Byh48cGwT) 內容:遞迴、輸入、輸出、條件判斷、迴圈、串列 課堂練習&回家作業 1. 在同一行輸入3個數字後,輸出時以","分隔 2. 在同一行輸入3個數字後,由大到小輸出並以","分隔 3. 熟悉的99乘法表,再做一次吧! 4. 輸入一個串列(整數組成),幫我輸出,全部的總和,最大的數字和最小的數字 --- ## 第二學期上課內容 ### 2/16 第一堂社課 [講義在這](https://hackmd.io/@158730Andy/SJ9Kx4jjp) 內容:靜態展簡介、Python語法總複習 ### 2/23 第二堂社課 高二畢旅特別企劃:一日講師 [動態規劃](https://hackmd.io/@Alvin70812/dp) [Unix Shell基本觀念](https://hackmd.io/@olivertzeng/GoofyGolfClubsIGuess) ### 3/1 第三堂社課 [連結在這](https://www.pygame.org/docs/) [講義在這](https://hackmd.io/@hEfWL7d7TlyAzwOSNgRR7w/B1K6f1R3a) 內容:Pygame程式碼導覽、鍵盤按鍵偵測 ### 3/8 畢業舞會 ### 3/15 第四堂社課 [講義在這](https://hackmd.io/@158730Andy/SymBaFMTp) 內容:場景設定、物件、畫面更新與遊戲流程 ### 3/22 段考前自習Time ### 3/29 第五堂社課 [講義在這](https://hackmd.io/@UbYvQ1A6RA6cnKmXxH-cng/SyobyR71C) 內容:滑鼠游標偵測、實作畫筆功能 ### 4/5 清明節 ### 4/12 第六堂社課 [講義在這](https://hackmd.io/@158730Andy/rJRSG_rlA) 內容:全域變數、鍵盤偵測、角色跳躍實作 ### 4/19 運動會 ### 4/26 八天長假假假假假假假假 ### 5/3 第七堂社課 [講義在這](https://gamma.app/docs/-ne5b5gpn2osenaw) 內容:滑鼠游標偵測、實作畫筆功能 ### 5/10 段考前自習Time ### 5/17 會考前放假Time ### 5/24 🎵🎶高一合唱比賽🎶🎵 ### 5/30 第八堂社課