章節目錄

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