1 of 29

1

Python 課程

蘇東興副教授

明新科大資工系

111/8/15

2 of 29

課程規劃

2

3 of 29

2025年職場成長最快與最快被取代行業

3

4 of 29

學習目標 1/2

4

  • Python是一種易於學習、功能強大且被廣泛使用的高階程式語言。
  • Python設計哲學強調程式碼的可讀性與簡潔的語法,其優雅語法和動態類型,使其成為大多數平台上,許多領域程式編寫和快速應用程序開發時的理想程式語言。
  • 由於Python具有高效能的資料結構和簡單又有效的物件導向方法,以及對象編程的簡單而有效的方法,相比於 C++ 或 Java,Python 讓開發者能夠用更少的程式碼來表達想法。

5 of 29

學習目標 2/2

5

  • 無論是小型或是大型程式開發,Python都試圖讓程式的結構更為清晰明瞭,這也是許多人之所以喜歡上它的重要原因。
  • 目前最熱門的人工智慧技術,幾乎大部分都是用 Python 語言來進行開發,
  • 許多大學將程式設計課程列為全校必修課,也是以Python為首選
  • 在本課程將介紹Python 的開發環境,基本語法、陣列、dataframe、繪圖、網路爬蟲與綜合應用(深度學習)等主題,參與學員可以快速體驗Python語言精妙之處。

6 of 29

學習Python 五大理由

6

7 of 29

電腦硬體

7

新的設計:

北橋併入CPU內部

8 of 29

電腦硬體-北橋與南僑

8

北橋負責控制速度較快的元件

南橋負責控制速度較慢的元件

9 of 29

電腦元件速度比較

9

10 of 29

主機板

10

11 of 29

主機板選擇

11

12 of 29

桌機CPU 與手機CPU

12

手機 SoC(System on Chip)

桌機 CPU

13 of 29

桌機CPU 與手機CPU-架構

13

14 of 29

電腦軟硬體系架構

14

作業系統(Windows、iOS、Linux、Android)

電腦語言翻譯器(Python、C、JAVA)

應用程式、編輯器….

電腦硬體

15 of 29

電腦軟硬體系架構-DOS

15

16 of 29

電腦軟硬體系架構-Windows

16

17 of 29

開機程序-載入作業系統

17

18 of 29

程式執行過程

18

資料

透過變數存取

19 of 29

作業系統

19

  • 管理電腦資源 : CPU、記憶體、硬碟儲存空間、網路、印表機
  • 提供管理介面:視窗介面、命令列介面
  • .......

20 of 29

電腦語言

20

  • 自然語言(不夠精準):國語、英文....

把 b 與 c 相加的結果放在 a

  • 高階電腦語言(與電腦溝通語言):Python、C、Java、C++

a = b + c

  • 低階電腦語言:組合語言、機器語言

load r1, b

load r2, c

Add r1,r2

store r1, a

0011 001, 0000010

0011 010, 0000011

0111 001,010

1111 001, 0000001

21 of 29

翻譯器/直譯器

21

  • 將高階電腦語言所寫成的程式碼,翻成機器語言(或是中間碼),讓CPU可以執行機器語言程式碼
  • 有翻譯器/直譯器 才可以開發應用程式

22 of 29

Statement vs. Expression

22

A = (b+c)*10 + d * 20

Expression 表示式

Statement 陳述

23 of 29

語法 vs. 語意

  • I go to school (語法 語意都對)
  • I go to cat (語法對 語意錯)
  • 求 x、y、z 三數平均�A = (x+y+z)/3 (語法、語意都對)�A = (x + y +z)/4 (語法對 、 語意錯)�(x+y+z)/3 = A (語法錯、 語意錯)

23

24 of 29

語法

  • a=0、b=1.2
  • c = (a+b)*10 + d *2
  • if a > b :� c = a� else� c =b
  • for i in range(0,10):

s = s + i

24

25 of 29

Python 程式設計

  • 學習語法
  • 了解語意
  • 熟悉編輯工具
  • 程式碼編輯器 Google colab 編輯器
  • Python : 變數 、輸出、輸入、計算、比較運算、邏輯運算、判斷式、串列、自訂函數、迴圈、…..

25

26 of 29

程式碼執行

26

高階語言程式碼

編輯器

翻譯器/直譯器

機器語言

中間碼

CPU

解譯器

27 of 29

程式設計-問題 轉成 程式碼

27

分析 邏輯

程式碼

轉換

邏輯 步驟性的描述

(流程圖、活動圖、

Pseudo Code)

問題

28 of 29

排序問題分析

28

給定 10 個整數,將其由小到大排序

分析 邏輯:

由小到大、

找到最小

找到第二小

…………

邏輯 步驟性的描述:

1. 從10個數字中找出最小的

放在第一個位置

2. 從剩下9個數字找出第二小的

放在第二個位置

3. 從剩下8個數字找出第三小的

放在第三個位置

4. …………………..

a = [5, 6, 3, 2, 1, 8, 0, 7, 9, 4]

For i in range(1,10):

if a[0] > a[i] :

t = a[0]

a[0] = a[i]

a[i] = t

For i in range(2,10):

if a[1] > a[i] :

t = a[1]

a[1] = a[i]

a[i] = t

………

優化

轉換成嚴謹

的程式碼

29 of 29

結語

  • 程式設計之道無他、多看、多寫、多想、多討論、多練習…..。

29