跳到主要內容

Day 2 變數與數據類型

Day 2 變數與數據類型

引言

在編程中,變數和數據類型是我們處理數據時的基石。變數是存儲數據的容器,而數據類型則決定了數據的特性及其可執行的操作。學習如何定義變數和使用不同的數據類型,是學習Python的關鍵步驟之一。

這篇文章將帶領你深入了解Python中變數的概念、如何定義變數,以及常見的數據類型,包括整數、浮點數、字串、布爾值、列表、元組和字典。我們還會討論如何檢查變數的類型,並且提供一些變數命名規則和編程風格的建議。

什麼是變數?如何在Python中定義變數

變數是一種在程式運行時用來儲存資料的標識符。通過定義變數,我們可以給特定的數據一個名稱,並在程式的其他地方使用這個名稱來引用該數據。在Python中,變數不需要事先聲明其數據類型,因為Python是一種動態類型語言。這意味著變數的數據類型由賦予它的值決定。

  1. 定義變數的基本語法

    在Python中,定義變數非常簡單,只需要使用賦值符號 = 將一個值賦予變數。例如:

    x = 5  # 定義一個變數x,並將整數5賦值給它
    name = "Alice"  # 定義一個變數name,並將字串"Alice"賦值給它
    

    在這裡,x 是一個變數,它被賦予了整數5,而 name 是另一個變數,它被賦予了一個字串值 “Alice”。

  2. 變數的更新與覆蓋

    變數的值是可以修改的,這意味着我們可以在程式的不同地方給變數賦予新的值。例如:

    x = 10  # x最初被賦予了10
    x = 15  # x的值現在被更新為15
    

    這樣,我們可以靈活地在程式中根據需求來修改變數的值。

  3. Python中的動態類型系統

    Python與某些靜態類型語言不同,它不需要在變數定義時聲明其類型。在賦值操作中,Python會根據賦予的值自動判斷變數的類型。例如:

    x = 5      # x是一個整數
    x = 3.14   # x現在變成了一個浮點數
    x = "Hi"   # x現在變成了一個字串
    

    同一個變數可以在程式運行過程中被賦予不同類型的值,這就是Python的靈活性之一。

常見數據類型

在Python中,數據類型決定了我們可以對變數執行的操作。理解常見的數據類型是學會使用Python處理各種數據的基礎。讓我們來看看Python中的一些基本數據類型。

整數 (int)

整數是一個不帶小數點的數字。它可以是正數、負數或零。Python允許處理極大的整數,並且不限制其大小,只要計算機的記憶體足夠。

age = 25  # 定義一個整數變數age
negative_number = -10  # 定義一個負的整數

浮點數 (float)

浮點數是一種帶有小數點的數字,用來表示非整數的數值。Python中的浮點數通常對應於數學中的實數,例如3.14、-0.001等。

pi = 3.14159  # 定義一個浮點數變數pi
temperature = -5.5  # 定義一個負的浮點數

浮點數通常用於涉及到分數或小數的運算,特別是在科學計算和工程應用中。

字串 (string)

字串是一系列字符的集合,通常用於表示文字信息。Python中的字串可以用單引號 ' ' 或雙引號 " " 來定義。無論是單引號還是雙引號,效果都是一樣的。

name = "Alice"  # 使用雙引號定義字串
greeting = 'Hello, world!'  # 使用單引號定義字串

字串可以進行多種操作,包括拼接、重複和索引。

字串的拼接

first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name  # 使用+來拼接字串
print(full_name)  # 輸出: John Doe

重複字串

repeat_str = "ha" * 3  # 重複字串3次
print(repeat_str)  # 輸出: hahaha

字串索引與切片

字串中的每個字符都有一個對應的索引值,從0開始計算。可以通過索引來獲取字串中的特定字符,或使用切片來提取字串的一部分。

name = "Python"
print(name[0])  # 輸出: P
print(name[-1])  # 輸出: n (從後往前的索引)
print(name[1:4])  # 輸出: yth (從索引1開始,到索引4之前結束)

布爾值 (bool)

布爾值只有兩個可能的值:True(真)或False(假)。這種數據類型在條件判斷和邏輯操作中非常重要。

is_python_fun = True
is_sun_hot = True
is_raining = False

布爾值通常用於條件語句中,幫助程式做出決策。

is_adult = True
if is_adult:
	print("You are an adult.")
else:
	print("You are not an adult.")

集合類型

在Python中,集合類型是一類用來存儲和操作多個數據值的數據結構。集合類型提供了比單一數據值更靈活和強大的處理能力,可以輕鬆進行數據的存儲、查詢和修改操作。常見的集合類型包括列表(list)、元組(tuple)、字典(dictionary)和集合(set)。每種集合類型各有特點,適合不同的應用場景。

在這個小節,我們將詳細探討這些集合類型,包括它們的特點、操作方法以及它們在實際編程中的應用場景。

列表(List)

列表的特點

列表(list)是Python中最常用的集合類型之一,它用於存儲一組有序的元素。列表內的元素可以是任意類型,並且列表是可變的,這意味著可以修改列表中的元素、添加或刪除元素。列表使用方括號 [] 定義,元素之間用逗號分隔。

示例:

fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "hello", 3.14, True]

列表的操作

Python提供了豐富的操作來處理列表,包括添加、刪除、查找和修改列表中的元素。

訪問列表元素:可以通過索引來訪問列表中的元素,索引從0開始。

fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 輸出 "apple"

修改元素:可以通過索引直接修改列表中的元素。

fruits[1] = "orange"
print(fruits)  # 輸出 ['apple', 'orange', 'cherry']

添加元素:使用append()方法可以將新元素添加到列表的末尾,或使用insert()方法將元素插入到指定位置。

fruits.append("grape")  # 添加元素到列表末尾
fruits.insert(1, "blueberry")  # 在索引1處插入元素
print(fruits)  # 輸出 ['apple', 'blueberry', 'orange', 'cherry', 'grape']

刪除元素:可以使用remove()方法刪除指定的元素,或使用pop()刪除特定位置的元素。

fruits.remove("orange")  # 刪除"orange"
fruits.pop(0)  # 刪除索引0處的元素
print(fruits)  # 輸出 ['blueberry', 'cherry', 'grape']

列表長度:使用len()函數可以獲取列表的長度,即列表中元素的個數。

print(len(fruits))  # 輸出 3

列表切片:可以使用切片來獲取列表的一部分。

print(fruits[1:3])  # 輸出 ['cherry', 'grape']

列表應用場景

列表非常靈活,適合用於存儲和操作多個相關數據。例如,可以用列表來存儲學生的名字、數字集合、不同類型的物品等。列表還可以輕鬆與循環結構(如 for 循環)結合使用來迭代數據。

元組(Tuple)

元組的特點

元組(tuple)與列表類似,也是一個有序的元素集合,並且可以包含不同類型的元素。但元組是不可變的,一旦創建就無法修改元組中的元素。元組使用小括號 () 定義。

示例:

coordinates = (10.0, 20.0)
person_info = ("Alice", 25, "New York")

元組中的元素可以通過索引來訪問,但無法修改或刪除它們。

元組的操作

訪問元素:通過索引訪問元組中的元素。

print(coordinates[0])  # 輸出 10.0

長度:使用len()函數獲取元組的長度。

print(len(coordinates))  # 輸出 2

切片:元組也支持切片操作。

print(person_info[0:2])  # 輸出 ('Alice', 25)

雖然元組不可變,但這個特性讓元組在某些情況下更為安全,因為無法意外修改它們的內容。

元組應用場景

元組的不可變性使它特別適合用於存儲那些不應該被修改的數據。例如,可以使用元組來存儲座標、配置數據、或者作為字典中的鍵。由於元組不可變,Python可以進行某些優化,使元組的操作速度通常比列表更快。

字典(Dictionary)

字典的特點

字典(dictionary)是一個無序的鍵值對集合,用來存儲具有映射關係的數據。每個鍵(key)都是唯一的,並映射到一個特定的值(value)。字典使用花括號 {} 定義,鍵值對之間用冒號 : 分隔,鍵值對之間用逗號分隔。

示例:

person = {
	"name": "Alice",
	"age": 25,
	"city": "New York"
}

在這個例子中,"name" 是一個鍵,它的值是 "Alice","age" 是另一個鍵,它的值是 25。

字典的操作

訪問值:可以通過鍵來訪問字典中的值。

print(person["name"])  # 輸出 "Alice"

修改值:可以通過鍵來修改字典中的值。

person["age"] = 30
print(person["age"])  # 輸出 30

添加鍵值對:可以直接添加新的鍵值對。

person["email"] = "alice@example.com"
print(person)  # 添加新鍵值對

刪除鍵值對:可以使用del關鍵字刪除指定的鍵值對。

del person["city"]
print(person)  # 刪除"city"鍵

獲取所有鍵:可以使用keys()方法獲取字典中的所有鍵。

print(person.keys())  # 輸出 dict_keys(['name', 'age', 'email'])

獲取所有值:可以使用values()方法獲取字典中的所有值。

print(person.values())  # 輸出 dict_values(['Alice', 30, 'alice@example.com'])

字典長度:使用len()函數可以獲取字典中鍵值對的數量。

print(len(person))  # 輸出 3

字典應用場景

字典在存儲和查找數據方面非常高效,特別適合用來存儲和快速查找鍵值對數據。例如,字典可以用於存儲用戶信息、配置設置或其他需要通過鍵來查找值的數據結構。在實際編程中,字典經常被用來實現映射和查詢的操作。

集合(Set)

集合的特點

集合(set)是一個無序的、不包含重複元素的集合。集合內的元素必須是可哈希的(如整數、字串、元組等),並且集合本身是可變的,可以添加或刪除元素。集合使用花括號 {} 定義,類似於字典,但集合只存儲元素,不包含鍵值對。

示例:

numbers = {1, 2, 3, 4, 5}

集合中的每個元素都是唯一的,並且集合自動去除重複的元素。

示例:

duplicates = {1, 2, 2, 3, 4, 4, 5}
print(duplicates)  # 輸出 {1, 2, 3, 4, 5}

集合的操作

添加元素:使用add()方法可以向集合中添加元素。

numbers.add(6)
print(numbers)  # 輸出 {1, 2, 3, 4, 5, 6}

刪除元素:使用remove()或discard()方法可以刪除集合中的元素。

numbers.remove(3)
print(numbers)  # 輸出 {1, 2, 4, 5, 6}

集合運算:集合支持常見的數學集合運算,如並集、交集和差集。

並集(union):返回兩個集合的並集,即兩個集合中所有不重複的元素。

a = {1, 2, 3}
b = {3, 4, 5}
print(a | b)  # 輸出 {1, 2, 3, 4, 5}

交集(intersection):返回兩個集合的交集,即兩個集合中都存在的元素。

print(a & b)  # 輸出 {3}

差集(difference):返回只存在於一個集合中的元素。

print(a - b)  # 輸出 {1, 2}

檢查元素是否存在:可以使用in運算符檢查元素是否在集合中。

print(1 in numbers)  # 輸出 True
print(7 in numbers)  # 輸出 False

集合應用場景

集合適合用於需要去除重複數據的情況。例如,可以使用集合來存儲一個數據集中唯一的元素、檢查兩個數據集之間的共同元素或差異。在處理大量數據時,集合的查找和比較操作比列表更加高效。

小結語

Python的集合類型提供了豐富的工具來處理不同的數據結構需求。列表是靈活的有序集合,適合用於頻繁修改的數據;元組是不可變的有序集合,適合用於存儲固定的數據;字典是一個高效的鍵值對集合,適合快速查找;集合則是一個無序的、去重的數據集合,適合集合運算和去重操作。

了解這些集合類型的特性和使用場景,能夠幫助你在編寫Python代碼時選擇最合適的數據結構,從而提高代碼的效率和可讀性。在日常的編程工作中,這些集合類型能夠極大地簡化數據處理的過程,使得你的代碼更加簡潔、明確。

變數命名規則與風格建議

為了讓程式碼更具可讀性,Python有一套變數命名的規則與風格建議:

  1. 變數名只能包含字母、數字和下劃線,並且不能以數字開頭。例如,name_1 是合法的變數名,而 1_name 則是不合法的。
  2. 變數名區分大小寫,這意味著 age 和 Age 是兩個不同的變數。
  3. 使用具體描述的變數名:變數名應該清楚描述變數的用途。例如,count 是比 c 更好的變數名,因為它更具描述性。
  4. 遵循Python命名風格:Python的變數命名一般使用蛇形命名法 (snake_case),即單詞之間使用下劃線分隔。例如,student_name 是一個良好的變數名。

type() 函數檢查數據類型

有時,我們需要檢查變數的數據類型,以確保它符合預期。Python提供了一個內建函數 type(),可以用來檢查變數的類型。

x = 10
print(type(x))  # 輸出: <class 'int'>
name = "Alice"
print(type(name))  # 輸出: <class 'str'>

type() 函數在調試和檢查變數類型時非常有用。

結語

理解變數和數據類型是掌握Python編程的關鍵。通過今天的文章,你已經學會了如何定義變數,了解了Python中常見的數據類型,包括整數、浮點數、字串、布爾值、列表、元組和字典。掌握這些基礎知識將幫助你在接下來的編程學習中處理更複雜的數據結構和邏輯。

明天,我們將深入探討Python中的運算符和邏輯運算,並學習如何進行數據的運算和條件判斷。

留言

這個網誌中的熱門文章

Python 從入門到 PyTorch 深度 學習:開啟AI世界的大門

Python 從入門到 PyTorch 深度學習:開啟AI世界的大門 Python 從入門到 PyTorch 深度學習:開啟AI世界的大門 隨著人工智慧(AI)與深度學習(Deep Learning)的快速發展,越來越多的人對這些技術產生了濃厚的興趣。不論你是想進入AI領域的初學者,還是已經有一定編程基礎的開發者,學習Python和深度學習框架如PyTorch,將為你打開通往未來的無限可能。 為什麼選擇Python? Python已經成為數據科學和人工智慧領域的首選語言,這不僅因為它的語法簡潔易學,更因為它擁有龐大的生態系統和大量的開源庫。無論是進行數據處理、數據可視化,還是建立機器學習與深度學習模型,Python都能高效應對。正因如此,它是任何想進入AI或數據科學領域的學習者必不可少的工具。 PyTorch是什麼? PyTorch 是一個由Facebook開發的開源深度學習框架。它以其易用性、靈活性和動態計算圖的特性著稱,成為眾多AI研究人員和開發者的首選。與其他框架相比,PyTorch的操作更像Python的原生語言,對初學者非常友好。無論你是要進行簡單的實驗,還是建立複雜的深度學習模型,PyTorch都能提供強大的支持。 這個博客系列能為你帶來什麼? 這個博客系列將從Python的基礎開始,帶你逐步學習,最終掌握如何使用PyTorch搭建深度學習模型。即使你從未接觸過編程,也能通過這個系列的內容,一步步提升技能,理解AI和深度學習的核心概念。 本系列將涵蓋以下主題: Python基礎知識:從變數、條件語句到函數與模塊。 數據處理工具:使用NumPy和Pandas進行高效的數據操作。 數據可視化:學會用Matplotlib和Seaborn展示數據。 深度學習的數學基礎:線性代數、微積分與概率論。 PyTorch入門:理解張量、模型構建與GPU加速。 基礎深度學習模型:CNN與RNN的實際應用。 深度學習專案實戰:端到端解決方案,從數據處理到模型部署。 誰適合這個系列? 編程初學者:如果你對AI充滿好奇但從未學過編程,本系列的第一部分會帶你快速上手Python,並幫助你理解深度學習的基本概念。 數據科學愛好者:如果你...

Day 1 Python簡介與環境設置

Day 1 Python簡介與環境設置 引言 在當今的科技時代,程式設計已經成為一種重要的技能,無論你是數據科學愛好者、開發者還是人工智慧(AI)研究人員,學習編程都會極大地提高你的競爭力。而在眾多編程語言中,Python憑藉其簡單易學的語法、強大的功能和廣泛的應用場景,成為許多人進入編程世界的首選。本篇文章將帶你了解Python的背景及優勢,並逐步教你如何在不同平台上安裝和設置Python開發環境,最終編寫第一個簡單的Python程式。 為什麼選擇Python? Python是一門高層次的編程語言,最初於1991年由Guido van Rossum發佈。Python的設計哲學強調代碼的可讀性,並使用縮進來定義代碼區塊,這與許多其他使用大括號的語言有所不同。Python的簡潔語法讓它成為初學者的理想選擇,並且即使是經驗豐富的開發者,也能通過其強大的功能來完成複雜的項目。 Python的優勢如下: 簡單易學 : Python具有清晰、簡潔的語法結構,讓初學者能夠迅速掌握。相比於其他語言,Python的學習曲線相對平緩,不需要太多的複雜概念來開始寫程式。 廣泛的應用場景 : Python的應用範圍非常廣泛,無論是數據科學、網頁開發、人工智慧、機器學習、自動化測試,還是網絡爬蟲,Python都有大量的開源庫和工具支持,並且在這些領域中扮演著關鍵角色。 豐富的庫和框架 : Python擁有龐大的庫生態系統,無論是進行數據分析的NumPy、Pandas,還是進行網頁開發的Django、Flask,亦或是進行深度學習的TensorFlow、PyTorch,Python的庫能夠滿足各種需求,讓開發過程更加高效。 跨平台支持 : Python支持多個操作系統,包括Windows、macOS、Linux,讓程式能夠跨平台運行,不需進行太多改動。這為開發者提供了極大的靈活性,能在任何系統上進行開發和部署。 龐大的社群支持 : Python擁有龐大的開發者社群,這意味著如果在學習或開發中遇到問題,幾乎都能在線上社群、論壇(如Stack Overflow)找到答案或解決方案。這為初學者提供了強大的支持系統,減少了學習過程中的挫折感。 Python的應用場景 隨著Python的流行和強大的功能,許多領域開始廣泛應用Python...