iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 2
0
自我挑戰組

零基礎成為 AI 解夢大師秘笈系列 第 2

【零基礎成為 AI 解夢大師秘笈】Day02 - Python Basics II

斜槓學習 – 零基礎成為 AI 解夢大師秘笈

前言

系列文章簡介

大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。

為什麼技術要從零開始寫起

自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。

學習資源

AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源

歡迎各位學習 Python Basics 的讀者,參考自由團隊製作的教學影片!(目前教學影片仍持續拍攝、剪輯中,歡迎未來有興趣持續學習的讀者們,關注我們的 Youtube Channel ,我們將持續為各位讀者提供更多學習資源!)
Lesson00 Preface 課程前言
Lesson01 Variable 變數
Lesson02 Operator 運算子
Lesson03 Data Structure 資料結構

(讀者們在讀文章時,搭配實作 & Youtube 教學影片,可達到最大的學習效益喔!)

教學開始

Python Basics 02

這一單元,我們要來介紹 Python 幾種常用的資料結構:list, range, set 和 dictionary。

1.列表 List

列表是常見的資料結構,基礎特徵為:以中括號進行定義,且每一項物件以逗號分隔。列表中的物件可以是數值、字串、變數...,甚至是其他資料結構都可以作為列表中的物件。

list1 = ['C','Python',1969,1991] #創建列表
print(list1)
list2 = [1, 2, 3, 4, 5]
print(list2)

列表可以透過索引抓取其中的物件,而索引值也是從 0 開始進行計算(同字串的索引方式)。

print("list1[0]: ",list1[0]) # list1 的第一項為C
print("list2[1:5]: ",list2[1:5]) # list2 的"第二"到"第四"個物件
print(list1[2]) # 列表中第三個元素
print(list1[-2]) # 讀取列表中倒數第二個元素
print(list1[1:]) # 從第二個元素開始截取列表

若想知道列表中有幾個物件,可使用內建函式 len() 去獲得列表中的物件數量。

len([1, 2, 3]) # 結果回傳 3,列表中有三個物件

列表可以使用 append() 增加物件。

test=[]          ## 空列表
test.append('1991')   ## 使用 append() 添加元素
print(test) #print出來看看

用 del() 則可進行刪除物件。

del(test[0]) #把第一項刪除
print(test)

我們也可以使用 "+" 組合列表進行呈現。

A=[1,2,3]
B=[4,5,6]
print(A+B)  # 組合[1, 2, 3] + [4, 5, 6]

重複使用列表則可用 "*"。

print(['Hi!'] * 4) #  變成一個列表中有四項Hi

列表就像個大書櫃,可以幫你整齊收納資料,隨時找出來做使用。

2.範圍 Range

Range 的使用方式有固定的規則,並且可以使用索引。

常用於迴圈(Loop),宣告方式為 range(start, stop, step)

start : 計數從 start 為起點。如果沒有數字就是從0開始。
stop : 計數到 stop 為終點。但不包括 stop 的數字。
Step : 移動間距,沒寫就默認為1。

for i in range(5):  # 0 ~ 4,但不包括5
  print(i,end=",")

for i in range(3,10,2): # 從3開始,但不包括10,每次跳2 (3,5,...)
  print(i,end=",")
  
for i in range(10,-30,-5):  #也可以設定遞減的運算方式
  print(i,end=",")

接下來,我們來看看實務上 range() 常見與其他語法的組合運用。

情境例題:
我們有六位學生,分別是 Jane, John, Mark, Harry, Mike 和 Ed,
今天我們要利用 Python 依序建立學生的座號清單,
並使用"列表"紀錄每個學生的座號對應到的名字,
我們該如何開始呢?

# 學生名單
student_names = ['jane','john','mark','harry','mike','ed']

# 建立一個空的學生座號清單
student_nums = []

# 開始進行學生座號編碼並新增於列表中
student_nums.append([1, student_names[0]])
student_nums.append([2, student_names[1]])
student_nums.append([3, student_names[2]])
student_nums.append([4, student_names[3]])
student_nums.append([5, student_names[4]])
student_nums.append([6, student_names[5]])

# 查看座號清單
print(student_nums)

是不是很簡單呢?透過整合應用,簡單的程式碼,可以快速處理很多複雜的行政工作!

3.集合Set

set() 函式能創建一個無順序關係、且內容不重複的物件集。
因此,可進行關係測試,如計算交集、差集、並集等,還可以刪除重複的物件。

x = set('runoob')
y = set('google')
print(x,y)

x, y
print(x,y) # 重複的被刪除

x & y  
print(x&y)  # 交集

x|y   
print(x|y) # 並集

x - y  # 差集
print(x - y)

4.字典 Dict

在字典中,每個物件中,都有一個特定 key 值會對應到一個 value,中間以冒號進行定義,
例 → “key1”: value1
每個物件之間同樣以逗號隔開,最後以大括號作為 dict 的定義。

dict = {'a': 1, 'b': 2, 'c': '3'}
print(dict)
  • 注意: value 可以取任何資料型態,但 key 值必須是不可變的物件,例:特定字串、數值。
dict3 = { 'abc': 123, 98.6: 37 }
print(dict3)

字典作為查資料的用途,用字典的名字 + 中括號,並透過 key 值進行索引,便能找出對應的 value。如果沒有相應的資訊,就會出現 error。

dict = {'Name': 'Soren', 'Age': 1000, 'Class': 'apple'}
print(dict['Name'])

我們也可以對原有的字典中,特定物件的 value 進行更新、修改

dict = {'Name': 'Lulu','Age':17,'Class':'math'}

dict['Name'] = 'jax'
dict['Age'] = 30
print(dict)

或是刪除 del ,

del dict['Name']  

清空則只需要.clear(),

dict.clear() 

在使用 dict ,有兩個重點:
1)不允許同一個 key 重複出現。 key 是唯一值,若同一個 key 被使用兩次,最後一個 value 會是最終值。
2)key 必須為不可變變數,所以我們無法用 list 作為key,如下實例:

dict = {['Name']:'Lulu', 'Age':17}

則會出現 Error。

邁向 AI 解夢大師 - 第二天

第二天的課程,我們學習到 Python 常用的資料結構,以及它們基礎的語法。是不是覺得 Python 很好上手呢?沒錯!
還有一種資料結構是 Tuple,不過在【零基礎成為 AI 解夢大師秘笈】系列文章中不會使用到,若有興趣深入認識的讀者,請參考Python Basics 免費學習資源 _ Tuple

每天一點一滴跟著自由團隊一起學習,讓我們從0基礎,三十天後一同成為 AI 解夢大師!

想更深入認識 AI . FREE Team ?

自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/

文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)


上一篇
【零基礎成為 AI 解夢大師秘笈】Day01 - Python Basics I
下一篇
【零基礎成為 AI 解夢大師秘笈】Day03 - Python Basics III
系列文
零基礎成為 AI 解夢大師秘笈30

尚未有邦友留言

立即登入留言