# **Python進階程式設計** 一班二十一號 林瑞凡 我本身有自學基礎C++起步, 高一必修資訊課也有學基礎的python,然而對資訊有興趣的我,決定選修進階程式設計,多學一些進階演算法,其中困難在理解觀念邏輯,需透過不斷的刷提。 ------ ## **高一學到的: ```input``` ```output``` ```for``` ```while```** ### 1-1 基本輸入輸出與條件判斷 #### 用input,print```*宣告型態要恰當 ``` ```*排版要對正確,特別是python用縮排看段落``` 例題-輸入成績直到輸入9999停止 ``` data=[] score=[] i=0 j=0 a=0 while True: a=input("請輸入姓名:") if(a!="9999"): b=int(input("請輸入此次平時考成績:")) data.append([a,b]) score.append(b) i=i+1 else: break for j in range(i): print(data[j]+"的成績為"+score[j] ``` ### 1-2 清單與while迴圈 && for 迴圈 #### 我寫 for迴圈通常會有次數問題,while會一直跑而在某條件下停止 例題1-判斷使用者輸入使否為回文 ![](https://i.imgur.com/YJRBuKM.png) 例題2-讓使用者一直輸入購物資訊,直到按"q"停止資料輸入 ![](https://i.imgur.com/wyPyy8F.png) ### 1.函式的基礎練習 2.練習 a.函式改寫 b.函式的建立 3.演算法與時間複雜度的介紹 #### 為什麼要寫函式呢? 寫遞迴、可能要重複使用某功能程式 不想重複打 就可以包成函式並且以呼叫方式使用 例題3-一元二次方程式函式的建立 ![](https://i.imgur.com/w8mLEHp.png) ## 時間複雜度:用來評斷演算法好壞的工具大O符號:紀錄時間複雜度的快慢大O符號是用來描述1個演算法在輸入n個東西時,總執行時間與n的關係。 ### 一個演算法執行的指令次數越多,代表花費的執行時間越長,效能越不好,也就是時間複雜度高。 ### 時間開銷(步驟次數)T 與 問題規模n 的關係 t*n ### 排序 #### 排序不外乎就是把邏輯理過一遍雖然有函式 但還是要理解基本排序 #### 有選擇排序 氣泡排序 插入排序 合併排序 以下為邏輯 選擇排序-一直找最小值往左邊放 氣泡排序-交換大小不同的值 插入排序-拿一個未排的值放入排的順序中(依序往左比 到適當的位置 合併排序-分割 合併 插入排序 ![](https://i.imgur.com/ofwvMqJ.jpg)