章節目錄
1 : 認識變數型態
2 : list與dict資料形式
3 : 學會用for迴圈提升效率
4 : 打造客制化模組 def & class
✦ 1 : 認識變數型態
1-1 什麼是變數?
變數主要是用來儲存資料,像是物品的名稱、股票的價格、商品的數量等、方便我們在未來做數據分析時能更快速簡單地進行各種計算!
1-2 如何命名變數?
變數可分成以下幾種型式:
字串(str)
整數(int)
小數點(float)
布林(bool)
# 命名變數會使用⌜=⌟
a = 'apple' # 字串(str)
x = 20 # 整數(int)
y = 2.5 # 小數點(float)
t = True # 布林(bool)
如果變數不需要使用可將變數刪除以節省記憶體:
del a
1-3 變數命名規則
- 變數名稱第一個字不能是數字,ex:
7water
- 變數區分大小寫
- 開頭結尾雙底線,通常為Python內建函式,ex:
__init__
- 結尾單底線,為避免和Python內建keyword名字重複,ex:
open_
✦ 2 : list與dict資料形式
2-1 List基本介紹
Python中資料通常是用變數來儲存,當有大量資料需要儲存時,常常會用list或dict來做儲存。
list主要提供多個變數儲存資料的空間。list中的每一個變數稱為元素
。
只要將元素放到中括號[]
內,之間以逗號,
分開
lists = ['元素1','元素2','元素3','元素4','元素5']
2-2 List取出元素
如果要取得list中的特定值,只要後面再加一個中括號[]
,並填入元素的順序編號。但要注意的是Python是從0開始計算,舉例來說:
lists = ['蘋果','香蕉','西瓜','橘子','梨子']
print(lists[0]) #取出第1個元素
# 輸出值:'蘋果'
print(lists[-1]) #取出倒數第1個元素
# 輸出值:'梨子'
2-3 List變更元素
- 將元素加在list最後面:
append
(超常用!!)
lists = [1,2,3,4,5,6]
lists.append(20)
print(lists)
# 輸出值:[1, 2, 3, 4, 5, 6, 20]
- 將元素放在指定的位置:
insert
lists = [2,4,6,8,10]
lists.insert(2,5) #2為插入的位置;5為插入的元素
print(lists)
# 輸出值:[2, 4, 5, 6, 8, 10]
- 刪除指定元素:
remove
lists = ['蘋果','香蕉','橘子','西瓜','草莓']
lists.remove('橘子')
print(lists)
# 輸出值:['蘋果', '香蕉', '西瓜', '草莓']
2-4 dict基本介紹
dict其實和list非常像,主要功能是儲存大量資料,提供多個變數儲存資料的空間,差別在於list像是捷運站的置物櫃,上面是號碼,而dict則像是教室內的置物櫃,上面是姓名座號
。
舉例來說:
lists = [20,15,25,40]
dicts = {'蘋果':20,'香蕉':15,'橘子':25,'西瓜':40} # 每個元素搭配一個名稱
2-5 dict取出元素
只需要依據名稱就可以取出置物櫃的元素
dicts = {'蘋果':20,'香蕉':15,'橘子':25,'西瓜':40}
dicts['橘子']
# 輸出值:25
✦ 3 : 學會用for迴圈提升效率
3-1 for迴圈功能
進行資料處理時常常會重複執行某些步驟,而使用for迴圈可以讓符合條件的資料自動進行處理,如此一來可以大幅減少額外寫程式的時間。
舉例來說,如果要print出1~10的數字。
- 無腦作法
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
- for迴圈作法
for number in range(1,11): # range(1,11)會從1數到10,因為會數到最後一個數字前一個
print(number) # 要在for迴圈下執行的話前面需空4格
3-2 for迴圈條件式-if
資料處理時通常會需要排除某些條件,像是月營收成長率未達20%以上則不納入選股清單等。
以下用簡單的例子來做練習:
- 印出1到10中小於6的數字
for i in range(1,11):
if i<6: # for迴圈下執行的話前面需空4格
print(i) # if條件下前面需空4格
- 印出1到100中3的倍數
for i in range(1,101):
if i%3==0: # %表示除完後的餘數,==在Python中等於數學式中的等號
print(i)
✦ 4 : 打造客制化模組 def & class
4-1 def函式
在製作大型專案時會將常重複使用到的功能撰寫成函式,當需要用到該功能時就可以直接呼叫,不需要將程式碼再重新複製貼上。
def的寫法如下:
def 函式名稱('參數1','參數2','參數3','參數4'):
函式功能程式碼
return '結果1','結果2'
- 寫出計算面積的函式
def Area(width,height):
area = width*height
return area
Area(20,5)
# 輸出值:100
- 寫出計算圓形面積和圓周長的函式
def Circle(radius):
area = radius**2*3.14 # **2等於平方的意思
length = radius*2*3.14
return area,length
a,l = Circle(3)
print(a,l)
# 輸出值:28.26, 18.84
4-2 class類別
class可以當作是def函式的老爸,會傳遞基因(變數和函式)給下面的孩子(def函式),和單一def函式不同的點在於第一個參數必須是self
。
舉例來說:
class Animal: # 名稱第一個字母通常是大寫
name = '小狗' # 變數
def bark(self): # 函式
print('汪汪汪!')
dog = Animal()
print(dog.name)
dog.bark()
# 輸出值:汪汪汪
4-3 class設定初始值
建立分析系統時通常會設定初始值,像是起始資金等等,Python中設定初始值的方式就是建立__init__
的函式。
以銀行帳戶為例
class Account: # 主類別:銀行帳戶
def __init__(self,name,password): # 預設值:姓名、密碼
self.name = name
self.password = password
self.balance = 0 # 起始資金為0
def deposit(self,amount): # 存入金額
if amount<0:
raise '存款金額需大於0'
self.balance += amount # 相當於balance = balance+amount
def withdraw(self,amount): # 提出金額
if amount>self.balance:
raise '帳戶餘額不足'
self.balance -= amount # 相當於balance = balance-amount
account = Account('Oscar','abcd1234') # 輸入名字+密碼
print(account.balance) # 顯示目前帳戶金額
account.deposit(1000) # 存入1000
print(account.balance) # 顯示最新帳戶金額
account.withdraw(300) # 提領300
print(account.balance) # 顯示最新帳戶金額
詳細程式碼可點擊一小時上手Python基礎語法
以上範例都幫大家寫好囉!建議實際練習會學得更快哦~
結論
這個單元主要讓大家熟悉Python的基礎語法,從日常生活中的例子方便大家了解如何將思考的邏輯用Python轉成程式碼,製作出簡單的小工具,未來章節會逐漸帶大家熟悉常用的套件,打造出客制化的數據分析。
如果對於Python安裝、環境架設還有疑問的話可以參考前兩篇
Python新手安裝環境 | 寫出自己的第一行程式碼
一鍵完成Python環境設定 | 輕鬆上手雲端開發平台Colab