Python-(補充)大括號、中括號、小括號傻傻分不清楚
Python-(補充)大括號、中括號、小括號傻傻分不清楚
零、前言
對一般 Python 初學者,很容易分不清楚小括號、中括號、大括號的使用時機,不知道甚麼時候要使用哪個,這篇文章就用簡單的分類來幫助讀者了解,每個括號的用途吧!
一、各種括號使用原則
這邊先簡單條列出原則,下面會再透過例子細講,讀者可以參考對照。
()
小括號- 表示 Function 時使用
- 用來表示資料結構中的「tuple」
[]
中括號- 用來表示資料結構中的「list」
- 用來表示位址(index)
{}
大括號- 用來表示資料結構中的「dict」、「set」
二、小括號
表示 Function 時使用,因此看到 「my_function()」這樣的形式,幾乎可以認定這是一個功能,會執行某些行為。
1 2 3 4 5 6 7 8
# 建立一個加法的 Function,回傳 num_a + num_b 的結果 def add(num_a, num_b): result = num_a + num_b return result a = 1 b = 3 c = add(a, b) # 表示 Function 都是使用小括號
1 2 3 4
# 我們很常使用一些 Python 內建功能,其實也是一樣意思 stock_list = ['2330', '0050', '2331', '3036'] num_of_stock = len(stock_list) # len() 就是 Python 內建功能,用來確認 List 的長度 print(num_of_stock) # 這邊輸出結果就會是 4,有四檔股票,print()本身也是一種內建功能
表示 元組(tuple)這種資料結構時,我們也會使用小括號框住資料,類似 串列(list),不過他們有些許差異,這邊先不展開講。
1 2 3 4 5 6 7 8
# 在 Python 中有一種類似 List 的資料結構,叫做 tuple,也是使用小括號表示 stock_tuple = ('2330', '0050', '2331', '3036') stock_list = ['2330', '0050', '2331', '3036'] # 兩者很像,但功能上有些許不同 print(stock_tuple[0]) # 輸出 stock_tuple 的第 0 個位址的值 => 2330 print(stock_tuple[1]) # 輸出 stock_tuple 的第 1 個位址的值 => 0050 print(stock_tuple[2]) # 輸出 stock_tuple 的第 2 個位址的值 => 2331 print(stock_tuple[3]) # 輸出 stock_tuple 的第 3 個位址的值 => 3036
三、中括號
用來表示 串列(list)這種資料結構,我們會使用中括號框住資料。
1 2 3 4 5 6 7
# 建立我的產業觀察名單 industry = ["水泥", "鋼鐵製造", "半導體", "食品"] # 建立我的個股觀察清單 stock_list_1 = ["1101-台泥", "1102-亞泥"] stock_list_2 = ["2002-中鋼", "2006-東和鋼鐵"] stock_list_3 = ["2330-台積電", "2303-聯電"] stock_list_4 = ["1201-味全", "1203-味王"]
我們在表示「位址」的概念時,也會使用到中括號,讓電腦知道我們需要找資料,注意,Python 中,在表示位置,都是從 0 開始算,即 0, 1, 2, 3, 4, 5…。
- 如果要抓取”水泥”這筆資料,則透過 industry[0] 這樣的方式來抓出第0位址資料
- 抓取”食品”,則透過 industry[3] 來抓出第3位址資料(即第四筆)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 延續上面程式碼,這邊建立一個 input,讓使用者輸入欲搜尋產業
search_industry = input("輸入要查詢的產業:")
# 這邊會判斷輸入的產業是否有在 industry 清單中,若有則輸出對應的股票清單
if search_industry == industry[0]: # 水泥 (第 0 個位址)
print(stock_list_1)
elif search_industry == industry[1]: # 鋼鐵製造 (第 1 個位址)
print(stock_list_2)
elif search_industry == industry[2]: # 半導體 (第 2 個位址)
print(stock_list_3)
elif search_industry == industry[3]: # 食品 (第 3 個位址)
print(stock_list_4)
else:
print("查詢不到相關股票清單")
四、大括號
表示 字典(dict)這種資料結構,我們會使用大括號框住資料。
1 2 3 4 5 6 7 8
# 建立一個字典,存放今天的個股收盤價 # 前面股票代號為 Key;後面收盤價為 Value,整個字典用「大括號」包住 today_stock_price = { "2330": 1000, "1101": 34.15, "1201": 18.15} # 查詢 2330 股價,只要對 dict 輸入key,便會回傳對應 value,跟查字典一樣 print(today_stock_price["2330"]) # 輸出:1000 股價
表示 集合(set)這種資料結構,我們會使用大括號框住資料。 集合 (Set) 其實和數組 (Tuple) 與串列 (List) 很類似, 不同的點在於集合不會包含重複的資料。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# 建立兩個人的個性集合,看看他們擁有那些個性,用大括號包起來 # 表達一個人的個性,不可能會有重複的項目 Howard_character = {"好奇心", "勇敢", "外向", "容易焦慮", "文靜"} Eva_character = {"慵懶", "外向", "好奇心", "理性", "好動", "膽小"} # Howard Eva 兩人的全部個性種類 聯集 的寫法 print("Howard Eva 兩人的全部個性種類:") print(Howard_character.union(Eva_character)) print(Howard_character | Eva_character) # 「|」是聯集表示符號 # Howard Eva 兩人個性共通點 交集 的寫法 print("Howard Eva 兩人個性共通點:") print(Howard_character.intersection(Eva_character)) print(Howard_character & Eva_character) # 「&」是交集表示符號
List 與 Tuple 都屬於「有順序」的資料結構,即代表存進去的順序是固定的;相對地,Dict 與 Set 就是屬於「沒有順序」的資料結構類型,就是說這兩種資料結構並不會記錄我們存資料的順序,像是 Dict 本身是透過「Key」來定位資料,而非透過位址(index)。
可以觀察到 List 的資料具有順序性,後面加入的資料,會往後延伸
可以觀察到 Set 的資料無順序性,不會因加入資料順序而決定排序
本文章以 CC BY 4.0 授權