2
3
黃信溢 文淵閣工作室
david@e-happy.com.tw�http://www.e-happy.com.tw
https://www.facebook.com/ehappytw
茶米老師教室�YouTube頻道
資訊教育初學特訓班�Facebook社團
文淵閣程式特訓班�Facebook粉絲專頁
▶
擁抱Python邁向未來
Python初學特訓班
4
Python 程式語言簡介
Python 程式語言是由吉多范羅蘇姆 (Guido van Rossum) 所創建,是一種物件導向、直譯式的電腦程式語言。根據一些較權威的機構如 IEEE、Tiobe 統計,Python 為目前最受歡迎的程式語言前幾名。
5
6
示意圖非當事人
請問老師,封面要怎麼設計?
既然是Python,那就放條蛇吧!
哇,那太猛了,一定很亮眼,太棒了!
呵呵,我也對自己那麼有創意很苦惱啊 ...
A few moment later
老師,我看到很多人買了書之後不敢看!
啊?為什麼,是書內容有什麼問題嗎?
是因為有很多人怕封面上那條蛇!!
.........
業配就是來得那麼突然 ...
這是廣告�但無法跳過
Python 程式語言簡介
六年前的 1989 年 12 月,我在尋找一門『課餘』程式設計專案來打發耶誕節前後的假期時光。假期裡我的辦公室關門,但我有一台家用電腦。我決定為當時我正構思的一個新的指令碼語言寫一個解譯器,它是 ABC 語言的繼承,對 UNIX / C 程式師會有吸引力。作為一個略微有些奇怪想法的人和《蒙提‧派森的飛行馬戲團》(Monty Python‘s Flying Circus)的狂熱愛好者,我選擇了 Python作為專案的名稱。
7
Python 的創始人吉多 · 范羅蘇姆(Guido van Rossum)
8
64 歲 Python 之父重返職場
退休太無聊了,我準備去微軟打工!
Python 程式語言的特色
9
雲端開發平台 Google Colab
Python初學特訓班
10
Google Colab:雲端的開發平台
Colaboratory 簡稱Colab,是由 Google 所提供,一個支援Python的雲端開發平台,主要目的是想要幫助人工智慧、機器學習和資訊教育的推廣。
11
Colab 建立筆記本
12
Colab 的開發設定與操作
13
課本課程內容分析
Python初學特訓班
14
15
變數、資料型態
Python初學特訓班
16
變數
x = 0 ; y=1
a = b = c = 20
age, name = 18, "林大山"
17
資料型態1
18
資料型態2
name = "David"
name = 'Lily'
name= "David's iPhone"
name = 'David\'s iPhone'
msg="""
第一行內容
第二行內容
"""
19
資料型態3
isMarry = True
isShow = False
type()
int()、float()、str()、eval()
20
輸出與輸入
Python初學特訓班
21
print()命令
print(項目1 [,項目2 ,… �(,sep=分隔字元,end=結束字元]))
* print()顯示的字串可以使用 + 進行組合,但不同型別要先用str()轉為文字。
print(100, "多吃水果", True)
print(str(100)+"多吃水果"+str(True))
print(100, "多吃水果", True, sep="&")
print("x=2", "y=6", sep="&", end=".")
22
print()-以%命令參數格式化
print(格式化字串 % (參數列))
print("%s 的成績為 %d" % ("王大山", 75))
print("%s 成績為 %5d" % ("王大山", 75))
print("%5s 成績為 %6.2f" % ("王大山", 75))
23
print()-以format()函數格式化
print(格式化字串.format(參數列))
print("{}成績為{}".format("王大山", 75))
print("{1}是{0}的成績".format("王大山", 75))
print("{0:5s}成績為{1:.2f}".format("王大山", 75))
24
input()-命令
變數=input([提示字串])
*由input所接收的值型別是字串喔!
#請修正程式的錯誤
score1 = input("請輸入數學成績:")
score2 = input("請輸入國文成績:")
total = score1 + score2
print("你的成績是 %d 分" % total)
25
score.py
註解
"""
以下是註解程式的內容
"""
a = 1 #變數a
b = 2
#以上分別宣告了變數 a 及 b
26
運算子
Python初學特訓班
27
運算子1
+、-、*、/、% (餘數)、// (商)、**(指數)
==、!=、>、>=、<、<=
not、and、or
+=、-=、
28
運算子2
29
( ) (括號)
** (指數)
+, - (正負號)
*, /, //, +, - (運算)
<, <=, >, >=, ==, != (比較)
not, and, or (邏輯)
範例練習
攝氏華氏換算器
•輸入攝氏溫度轉為華氏 華氏 = 攝氏*(9/5)+32
•輸入華氏溫度轉為攝氏 攝氏 = (華氏-32)*5/9
BMI計算機
•詢問使用者的身高、體重,計算BMI值
•公式 BMI = 體重(kg) / 身高(m)2
30
判斷式
Python初學特訓班
31
流程控制結構 – 循序結構
32
程式敘述
程式敘述
程式敘述
流程控制結構 – 選擇結構
33
程式敘述
條件式
成立
不成立
不成立
不成立
不成立
程式敘述
條件式
成立
不成立
程式敘述
條件式1
條件式2
條件式3
程式敘述1
程式敘述2
程式敘述3
成立
成立
成立
單向判斷
雙向判斷
多向判斷
流程控制結構 – 重複結構
34
程式敘述
條件式
成立
不成立
判斷式1
if 條件式:
程式區塊
if 條件式:
程式區塊一
else:
程式區塊二
35
範例
score = int(input("輸入分數:"))
if score >= 60:
print("及格!")
else:
print("不及格!")
判斷式2
if 條件式一:
程式區塊一
elif 條件式二:
程式區塊二
elif 條件式三:
………
else:
else程式區塊
36
範例
score = int(input("輸入成績:"))
if score >= 90:
print("優等")
elif score >= 80:
print("甲等")
elif score >= 70:
print("乙等")
elif score >= 60:
print("丙等")
else:
print("丁等")
範例練習
判斷奇偶數
請使用者輸入一個整數後,判斷該數為奇數還是偶數。
判斷是否為閏年
請使用者輸入一西元年,判斷該年是否為閏年。
規則:西元年若是整百年,如果能被400年整除是閏年,若不是整百年能被4可整除,為閏年。
37
自訂函式
Python初學特訓班
38
自訂函式
def 函式名稱([參數1, 參數2, ……]):
程式區塊
[return 回傳值1, 回傳值2, ……]
def SayHello():
print( "歡迎光臨!")
39
直接�執行
加上一�個參數
加上多個參數
加上�回傳值
範例練習
def GetArea(width, height):
area = width * height
return area
def tc2tf(tc):
tf = tc * 1.8 + 32
return tf
TC = float(input("請輸入攝氏溫度:"))
TF = tc2tf(TC)
print("華氏 %.1f 度為攝氏 %.1f 度" % (TF, TC))
40
自訂函式:變數有效範圍
41
串列與整數串列
Python初學特訓班
42
認識串列(List)1
43
值 | 85 | 90 | 75 | 92 |
變數 | X1 | X2 | X3 | X4 |
串列 | X[0] | X[1] | X[2] | X[3] |
X1=85, X2=90, X3=75, X4=92
X=[85, 90, 75, 92]
認識串列(List)2
串列名稱 = [元素1, 元素2, ……]
list1 = [1, 2, 3, 4, 5] �#元素皆為整數
list2 = ["香蕉", "蘋果", "橘子"] �#元素皆為字串
list3 = [1, "香蕉", True] �#包含不同資料型態元素
44
取得串列元素
元素值 = 串列名稱[索引值]
元素值 = 串列名稱[始起索引:終止索引]
list1 = [1, 2, 3, 4, 5]
print(list1[0])
print(list1[1:4])
print(list1[-1]) #取出最後一個元素值
45
range() 整數串列
串列變數 = range([起始值,] 終止值 [,間隔值])�*產生的串列是起始值到「終止值 - 1」的串列
list1 = range(5) #list1=[0,1,2,3,4]
list2 = range(3, 8) #list2=[3,4,5,6,7]
list3 = range(3, 8, 2) #list3=[3,5,7] 元素值每次增加2
list4 = range(8, 3, -1) #list4=[8,7,6,5,4] 間隔值可以是負值
46
迴圈
Python初學特訓班
47
關於迴圈
48
for 迴圈
for 變數 in 串列:
程式區塊
fruits = ["香蕉", "蘋果", "橘子"]
for fruit in fruits:� print(fruit, end=",")
total = 0
for i in range(1, 11):
total += i
print("total=%d" % sum)
49
while 迴圈
while 條件式:
程式區塊
total=0; n=1
while(n<=10):
total += n� n += 1
print(total) #1+2+……+10=55
50
跳出及跳過迴圈
for i in range(1,11):
if(i==4):
break
print(i, end=",") #執行結果:1,2,3,
for i in range(1,11):
if(i==4):
continue
print(i, end=",") #執行結果:1,2,3,5,6,7,8,9,10,
51
範例練習
九九乘法表
請列印出一份由2到9的九九乘法表。
繪製三角形
請印出下面的三角形
52
模組
Python初學特訓班
53
模組
import 命令的語法為:
import 模組名稱
通常模組中有許多函式可以使用,語法為:
模組名稱.函式名稱
範例
使用 random 隨機模組中的 randint 隨機整數函式,由 1 到 10 中隨機取出一個整數:
import random
pickno = random.randint(1,10)
print(pickno)
54
模組
import 命令的第二種語法:
from 模組名稱 import *
匯入模組後,可以直接使用函式。
範例
使用 random 隨機模組中的 randint 隨機整數函式,由 1 到 10 中隨機取出一個整數,其程式為:
from random import *
pickno = randint(1,10)
print(pickno)
55
模組
import 的模組或模組中的函式名稱若太長,可以取一別名:
import 模組名稱 as 別名
from 模組名稱 import 函式 as 別名
範例
import random as r
pickno = r.randint(1,10)
print(pickno)
56
範例練習
終極密碼
from random import randint
ans = randint(1, 100)
guess = 0
while ans != guess:
guess = int(input('請輸入號碼:'))
if guess > ans :
print('請猜低一點!')
elif guess < ans :
print('請猜高一點!')
else:
print('猜中了!')
break
57
感謝您的參與
黃信溢 @茶米老師教室
▶