Python 是一種動態類型語言,這意味著變數的類型是根據它所保存的值自動確定的。要編寫高效且無錯誤的代碼,瞭解 Python 提供的各種內置數據類型至關重要。這些數據類型構成了 Python 程式設計的基礎,並且幾乎用於每個 Python 應用程式。
Python 的內置數據類型可以大致分為幾組:
P ython 提供了三種不同的數值數據類型: int 、 float和complex 。這些類型用於表示數位並執行各種數學運算。
int類型用於表示整數,包括正數、負數以及零。 Python的int類型是無界的,這意味著只要有足夠的記憶體,它就可以表示任意大的數位。
x = 42# Positive integery = -15# Negative integerz = 0# Zeroprint(type(x))# Output:在此示例中, x 、 y和z均為整數。 Python 可以毫不費力地處理非常大的整數:
large_number = 10**100# A very large integerprint(large_number)float類型表示帶小數點的實數。這些數位也可以用科學計數法來表示。 Python 使用雙精度(64 位)來存儲浮點數。
a = 3.14# Floating-point numberb = -0.001# Negative floatc = 1.5e3# Scientific notation for 1500.0print(type(a))# Output:在此示例中, a 、 b和c是浮點數。 float類型對於表示需要精度的值非常有用,例如測量或財務計算。
Python 還支持複數,即a + bj形式的數位,其中a是實部, b是虛部。複數在科學和工程計算中特別有用。
c1 = 2 + 3j# Complex number with real part 2 and imaginary part 3c2 = -1j# Complex number with only an imaginary partprint(c1.real)# Output: 2.0 (real part of c1)print(c1.imag)# Output: 3.0 (imaginary part of c1)print(type(c1))# Output:在此示例中, c1和c2是複數。您可以使用.real和.imag屬性訪問實部和虛部。
Python 提供了幾種內置的序列數據類型,允許您以有序的方式存儲和管理專案集合。最常見的序列類型是list 、 tuple和range 。序列類型支援索引、切片和反覆運算等操作。
list數據類型是可變序列,這意味著您可以在建立清單後更改、添加或刪除元素。清單用途廣泛,可以容納不同類型的專案,包括其他清單。
fruits = ["apple", "banana", "cherry"]numbers = [1, 2, 3, 4, 5]mixed = [1, "apple", 3.14, True]print(fruits[0])# Output: applefruits[1] = "orange"# Modifying the listprint(fruits)# Output: ['apple', 'orange', 'cherry']在此示例中,清單fruits包含字串元素,但清單也可以包含數位、布爾值,甚至是混合類型,如mixed中所示。修改清單的能力使它們成為動態更改集合的絕佳工具。
清單的常見操作:
tuple是不可變的序列,這意味著一旦創建,其元素就無法修改。當您想要對在整個程式中不應更改的項目進行分組時,元組非常有用。
coordinates = (10, 20)person = ("John", 25, "Engineer")print(coordinates[0])# Output: 10在此示例中, coordinates組包含兩個元素。元組通常用於存儲相關但不可更改的數據,例如座標或記錄。
為什麼使用元組?
range類型表示數位序列,通常用於迴圈特定次數。 range物件具有記憶體效率高,因為它不會將數位存儲在記憶體中,而是動態生成它們。
r = range(5)# Creates a range from 0 to 4 (5 is excluded)print(list(r))# Output: [0, 1, 2, 3, 4]還可以指定開始、停止和步驟以進行更多控制:
r = range(1, 10, 2)# Creates a range from 1 to 9, stepping by 2print(list(r))# Output: [1, 3, 5, 7, 9]範圍經常用在for迴圈中:
for i in range(3):print(i)# Output: 0 1 2這些序列類型中的每一種都提供獨特的優勢,具體取決於您是否需要可變性或效率。清單非常適合動態數據,而元組更適合不會更改的固定數據。
在Python中,用於表示文本的主要數據類型是str (字串)類型。字串是 Unicode 字元序列,因此可用於存儲和操作文本數據,包括單詞、句子,甚至大量文本。
Python 中的字串是用單引號 ( ' ) 或雙引號 ( " ) 括起來的字元序列。字串是不可變的,這意味 著一旦創建,就無法修改。如果需要更改字串,則必須創建新字串一。
greeting = "Hello, World!"name = 'John Doe'print(type(greeting))# Output:還可以對多行字串使用三引號( '''或""" ):
message = """This is a multi-line string.You can write across multiple lines."""print(message)儘管字串是不可變的,但 Python 提供了多種操作字串和生成新字串的方法。
Python 提供了多種內置的字串方法來操作和處理字串。以下是一些常用的字串方法:
Python 提供了強大的字串格式化方法,例如 f 字串,它允許您將表示式嵌入到字串文字中。 F 字串從 Python 3.6 開始可用。
使用 f 字串的範例:
name = "Alice"age = 30intro = f"My name is {name} and I am {age} years old."print(intro)# Output: My name is Alice and I am 30 years old.此方法提供了一種更具可讀性和更有效的方式來在字串中嵌入變數和表達式。
str類型是 Python 中處理文字的基礎。瞭解如何有效地操作和格式化字串對於在程式中處理基於文本的數據至關重要。
在Python中,主要的內置映射數據類型是dict (字典)。字典是鍵值對的無序集合,其中每個鍵必須是唯一且不可變的,而值可以是任何類型。字典對於基於唯一鍵存儲和檢索數據非常有效。
字典是使用大括號{}和一系列鍵值對創建的,其中每個鍵與其值之間用冒號:分隔。您還可以使用dict()構造函數創建字典。
person = {"name": "Alice","age": 30,"job": "Engineer"}print(person["name"])# Output: Aliceprint(person.get("age"))# Output: 30在此示例中,字典person使用鍵"name" 、 "age"和"job"存儲有關個人的資訊。可以通過引用該鍵來訪問與每個鍵關聯的值。
字典是可變的,這意味著您可以在創建字典后添加、更改或刪除鍵值對。
還可以使用del關鍵字來刪除鍵值對:
del person["city"]print(person)# Output: {'name': 'Alice', 'age': 31}字典提供了許多管理鍵值對的有用方法。一些最常見的方法包括:
字典通常用作查找表,因為它們允許您快速查找與特定鍵關聯的值。當您需要有效地存儲和檢索數據時,這特別有用。
prices = {"apple": 0.99,"banana": 0.50,"cherry": 2.50}print(prices["apple"])# Output: 0.99在這裡,字典prices充當查找表,可以根據商品名稱快速查找商品的價格。
與清單推導式類似,您可以使用字典推導式以簡潔且可讀的方式創建字典。
squares = {x: x**2 for x in range(5)}print(squares)# Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}此示例生成一個字典,其中鍵是從0到4的數位,值是它們的平方。
字典是 Python 中最強大、最靈活的數據類型之一,這使得它們對於高效的數據組織和檢索至關重要。
在 Python 中,集合是無序、唯一元素的集合。 Python 提供兩種類型的集合: set和frozenset 。當您需要存儲不重複的項目或執行數學集合運算(例如並集、交集和差集)時,集特別有用。
set是不可變物件的無序集合。但是,集合本身是可變的,這意味著您可以在創建集合後添加或刪除元素。由於集合是無序的,因此它們不支援像清單或元組那樣的索引或切片。
fruits = {"apple", "banana", "cherry"}print(fruits)# Output: {'apple', 'banana', 'cherry'}# Adding an elementfruits.add("orange")print(fruits)# Output: {'apple', 'banana', 'cherry', 'orange'}# Removing an elementfruits.remove("banana")print(fruits)# Output: {'apple', 'cherry', 'orange'}在此示例中,集合fruits包含三個獨特的元素。 .add()方法允許我們添加新元素, .remove()方法允許我們刪除元素。
集合的性質:
重要的設置操作:
集合支援許多數學集合運算,例如並、交、差和對稱差。
frozenset是集合的不可變版本。一旦創建,就無法修改其元素(即無法添加或刪除元素)。但是,與集合一樣, frozenset支援所有標準集合運算,例如並集、交集和差集。
例子:
frozen_fruits = frozenset(["apple", "banana", "cherry"])print(frozen_fruits)# Output: frozenset({'apple', 'banana', 'cherry'})# You cannot modify a frozenset, but you can perform set operationsset_a = frozenset([1, 2, 3])set_b = frozenset([3, 4, 5])print(set_a.intersection(set_b))# Output: frozenset({3})何時使用frozenset :
set和frozenset都支持多種內置方法來執行操作和查詢數據。
集合對於管理唯一項的集合和執行基於集合的操作非常有效,而frozenset在需要時提供不變性。
在 Python 中,布爾數據類型 ( bool ) 表示兩個可能值之一: True或False 。這些值通常用在條件和控制流中來管理程序邏輯。布爾值是比較運算、決策和循環結構的重要組成部分。
bool數據類型只有兩個可能的值:
Python 將True和False視為整數的特殊情況,其中True相當於1 , False相當於0 。然而,布爾值最常用於邏輯運算,而不是算術運算。
is_active = Trueis_valid = Falseprint(is_active)# Output: Trueprint(is_valid) # Output: False布爾值通常是比較或邏輯表達式的結果。返回布爾值的一些常見運算符是:
比較運算符示例:
a = 10b = 20print(a == b)# Output: False (10 is not equal to 20)print(a < b) # Output: True (10 is less than 20)在此示例中,比較運算子用於評估a和b之間的關係,返回布爾值( True或False )。
邏輯運算符示例:
x = Truey = Falseprint(x and y)# Output: False (both must be True for 'and' to return True)print(x or y) # Output: True (only one needs to be True for 'or' to return True)print(not x)# Output: False (not inverts the boolean value)在 Python 中,許多數據類型都有隱式布爾值。這在if和while等條件語句中特別有用。以下值在 Python 中被視為False :
其他一切都被認為是True 。
print(bool(0))# Output: False (zero is treated as False)print(bool("")) # Output: False (empty string is False)print(bool([1, 2])) # Output: True (non-empty list is True)print(bool(None)) # Output: False這種行為在編寫條件邏輯時非常有用,因為 Python 會自動將表達式轉換為其布爾等價物。
布爾值是 Python 中控制流的基礎。它們幫助確定if 、 else 、 elif 、 while和for語句中代碼塊的執行。
if語句示例:
age = 18if age >= 18:print("You are an adult.")# This block executes because the condition is Trueelse:print("You are a minor.")在此示例中, if語句評估age >= 18是否為True 。如果是,則運行第一個代碼塊;否則,運行else塊。
while迴圈示例:
count = 0while count < 5:print(count)count += 1在此while迴圈中,在每次反覆運算之前都會評估條件count < 5 。只要條件為True ,迴圈就會繼續執行。
布爾值是程式設計邏輯的基礎,允許您根據條件做出決策並控制代碼的行為。