# **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-判斷使用者輸入使否為回文

例題2-讓使用者一直輸入購物資訊,直到按"q"停止資料輸入

### 1.函式的基礎練習 2.練習 a.函式改寫 b.函式的建立 3.演算法與時間複雜度的介紹
#### 為什麼要寫函式呢? 寫遞迴、可能要重複使用某功能程式 不想重複打 就可以包成函式並且以呼叫方式使用
例題3-一元二次方程式函式的建立

## 時間複雜度:用來評斷演算法好壞的工具大O符號:紀錄時間複雜度的快慢大O符號是用來描述1個演算法在輸入n個東西時,總執行時間與n的關係。
### 一個演算法執行的指令次數越多,代表花費的執行時間越長,效能越不好,也就是時間複雜度高。
### 時間開銷(步驟次數)T 與 問題規模n 的關係
t*n
### 排序
#### 排序不外乎就是把邏輯理過一遍雖然有函式 但還是要理解基本排序
#### 有選擇排序 氣泡排序 插入排序 合併排序 以下為邏輯
選擇排序-一直找最小值往左邊放
氣泡排序-交換大小不同的值
插入排序-拿一個未排的值放入排的順序中(依序往左比 到適當的位置
合併排序-分割 合併
插入排序
