Python/ target=_blank class=infotextkey>Python提供了一組豐富的內(nèi)置數(shù)據(jù)類型,使您能夠在程序中處理不同類型的數(shù)據(jù)。核心數(shù)值類型包括整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。整數(shù)表示整數(shù),對(duì)于精確的計(jì)數(shù)和計(jì)算非常有用。
浮點(diǎn)數(shù)表示具有小數(shù)精度的實(shí)數(shù),這對(duì)科學(xué)和統(tǒng)計(jì)計(jì)算非常重要。復(fù)數(shù)將數(shù)字?jǐn)U展到復(fù)平面,并在許多科學(xué)和數(shù)學(xué)應(yīng)用中使用。
Python具有許多內(nèi)置數(shù)據(jù)類型,使您能夠以強(qiáng)大的方式存儲(chǔ)和操作數(shù)據(jù)。選擇適當(dāng)?shù)臄?shù)據(jù)類型對(duì)于編寫高效的Python代碼非常重要。這份綜合指南將通過代碼示例詳細(xì)介紹各種Python數(shù)據(jù)類型。
數(shù)值類型
Python中的數(shù)值數(shù)據(jù)類型允許您處理整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)等數(shù)值數(shù)據(jù)。讓我們逐一查看每種數(shù)值類型。
1.Integer(int)
整數(shù)是整數(shù),如-2、-1、0、1、2、3等。它們可以是正數(shù)、負(fù)數(shù)或0。在Python中,整數(shù)是不可變的。一些示例:
x = 10 # positive integer
y = -5 # negative integer
print(type(x)) # <class 'int'>
我們可以對(duì)整數(shù)執(zhí)行數(shù)學(xué)操作,如加法、減法、乘法等。
a = 12
b = 4
print(a + b) # 16
print(a - b) # 8
print(a * b) # 48
整數(shù)可以轉(zhuǎn)換為其他類型,如浮點(diǎn)數(shù)、復(fù)數(shù)等。
num = 10
print(type(num)) # <class 'int'>
num2 = float(num)
print(type(num2)) # <class 'float'>
2.浮點(diǎn)數(shù)(float)
浮點(diǎn)數(shù)表示實(shí)數(shù),如-1.5、-0.4、0.0、1.25、9.8等。它們包含小數(shù)點(diǎn)。在需要精度的科學(xué)和統(tǒng)計(jì)計(jì)算中非常有用。一些示例:
a = 1.5
b = -0.4
print(type(a)) # <class 'float'>
浮點(diǎn)數(shù)支持?jǐn)?shù)學(xué)運(yùn)算,如加法、減法等。
x = 3.0
y = 5.5
print(x + y) # 8.5
print(x - y) # -2.5
print(x * y) # 16.5
它們可以轉(zhuǎn)換為其他類型,如int、complex等。
a = 1.2
print(type(a)) # <class 'float'>
b = int(a)
print(type(b)) # <class 'int'>
3.復(fù)數(shù)
復(fù)數(shù)以x + yj的形式書寫,其中x是實(shí)部,y是虛部。它們?cè)诳茖W(xué)和數(shù)學(xué)應(yīng)用中非常有用。
x = 5 + 3j
print(type(x)) # <class 'complex'>
我們可以執(zhí)行復(fù)數(shù)上的加法和乘法等操作。
a = 2+3j
b = 5+4j
print(a + b) # 7+7j
print(a * b) # -7+26j
它們可以轉(zhuǎn)換為其他類型,如int、float等。
x = 5 + 3j
print(type(x)) # <class 'complex'>
y = float(x)
print(type(y)) # <class 'float'>
4.布爾類型
布爾類型表示邏輯值True和False。用于條件測(cè)試和邏輯。例如:
x = True
y = False
print(type(x)) # <class 'bool'>
可以使用布爾運(yùn)算符如and、or、not來(lái)組合邏輯表達(dá)式和條件。
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
其他數(shù)據(jù)類型可以根據(jù)其真值轉(zhuǎn)換為布爾值。
x = 5
print(bool(x)) # True
y = 0
print(bool(y)) # False
序列類型
序列類型允許以有序的方式存儲(chǔ)數(shù)據(jù)集合。讓我們逐一了解它們:
1.字符串(str)
字符串表示Unicode字符的序列,如字母、數(shù)字、空格等。在Python中它們是不可變的。創(chuàng)建字符串的一些示例:
s1 = 'Hello'
s2 = "World"
print(type(s1)) # <class 'str'>
我們可以使用索引訪問單個(gè)字符:
s = 'python'
print(s[0]) # p
print(s[3]) # h
字符串支持操作,如連接、切片、長(zhǎng)度等。
s1 = 'Hello'
s2 = 'World'
print(s1 + ' ' + s2) # Hello World
print(len(s1)) # 5
格式說(shuō)明符如%s可用于格式化:
name = 'John'
print('My name is %s' % name) # My name is John
2.列表
列表是有序的值集合,可變(可修改)。允許存儲(chǔ)不同的數(shù)據(jù)類型。
nums = [1, 2, 3]
fruits = ['Apple', 'mango', 'banana']
print(type(nums)) # <class 'list'>
我們可以使用索引訪問元素。列表是可變的。
nums[0] = 5
print(nums) # [5, 2, 3]
列表支持操作,如連接、切片、長(zhǎng)度等。
fruits = ['apple', 'banana', 'mango']
print(len(fruits)) # 3
print(fruits[1:]) # ['banana', 'mango']
3.元組
元組是有序的值集合,不可變(無(wú)法修改)。允許存儲(chǔ)不同的數(shù)據(jù)類型。
point = (2, 3) # 括號(hào)不是必需的,但建議使用
colors = ('red', 'blue', 'green')
print(type(point)) # <class 'tuple'>
我們可以使用索引訪問元素,但不能修改元組。
point[0] = 5 #錯(cuò)誤:無(wú)法修改元組
元組支持操作,如連接、切片、長(zhǎng)度等。
colors = ('red', 'blue', 'green')
print(len(colors)) # 3
print(colors[1:]) # ('blue', 'green')
4.Range
range 表示不可變的數(shù)字序列。通常用于循環(huán)遍歷數(shù)字序列。
nums = range(5) # 0到4
print(list(nums)) # [0, 1, 2, 3, 4]
range 經(jīng)常用于for循環(huán)中:
for i in range(3):
print(i)
# 輸出:
# 0
# 1
# 2
我們還可以創(chuàng)建具有開始、結(jié)束和步長(zhǎng)的 range。
nums = range(3, 8, 2)
print(list(nums)) # [3, 5, 7]
集合類型
集合是無(wú)序的唯一值集合。它們支持成員測(cè)試、集合數(shù)學(xué)等操作。
1.集合
集合僅包含唯一值。元素可以添加和刪除。
colors = {'red', 'blue', 'green'}
print(type(colors)) # <class 'set'>
集合元素可以進(jìn)行成員測(cè)試、添加/刪除。集合是可變的。
'red' in colors # True
colors.add('yellow')
colors.remove('blue')
集合之間可以進(jìn)行聯(lián)合、交集等集合數(shù)學(xué)操作。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # {1, 2, 3, 4, 5}
print(set1 & set2) # {3}
2.不可變集合
不可變集合是Python集合的不可變變體。元素?zé)o法添加或刪除。
colors = frozenset(['red', 'blue', 'green'])
print(type(colors)) # <class 'frozenset'>
colors.add('yellow') # AttributeError
不可變集合可用作字典鍵以及集合操作。
映射類型
映射類型允許將數(shù)據(jù)存儲(chǔ)為鍵-值對(duì)。字典是Python中的主要映射類型。
字典
字典由鍵-值對(duì)組成,括在大括號(hào){}中。用于存儲(chǔ)相關(guān)數(shù)據(jù)。
student = {
'name': 'John',
'age': 20,
'courses': ['Math', 'Science']
}
print(type(student)) # <class 'dict'>
可以通過鍵訪問字典元素并進(jìn)行修改。字典是可變的。
student['name'] = 'Mark' # 更新值
print(student['courses']) # ['Math', 'Science']
常見的字典操作包括長(zhǎng)度、添加/刪除鍵、迭代等。
print(len(student)) # 3
student['emAIl'] = 'john@example.com' # 添加鍵值
for key in student:
print(key, student[key]) # 打印每個(gè)項(xiàng)
二進(jìn)制類型
Python中的二進(jìn)制類型用于處理二進(jìn)制數(shù)據(jù),如字節(jié)、字節(jié)數(shù)組等。
1.字節(jié)
字節(jié)表示不可變的字節(jié)序列。示例:
data = b'hello'
print(type(data)) # <class 'bytes'>
字節(jié)支持操作,如索引、長(zhǎng)度、連接等,但是它們是不可變的。
print(data[0]) # 104
print(len(data)) # 5
data2 = data + b'world' # 無(wú)法修改,只能連接
2.字節(jié)數(shù)組
字節(jié)數(shù)組表示可變的字節(jié)序列。它們可以在原地修改。
data = bytearray(b'hello')
print(type(data)) # <class 'bytearray'>
data[0] = 106 # 可變的
字節(jié)數(shù)組支持典型的序列操作,如索引、連接等。
print(data[0]) # 106
data2 = data + bytearray(b'world')
3.Memoryview
Memoryview對(duì)象允許直接訪問支持緩沖區(qū)協(xié)議的對(duì)象的內(nèi)部數(shù)據(jù),而不需要復(fù)制。用于高級(jí)優(yōu)化。
data = memoryview(b'hello')
print(data[0]) # 104
Memoryview支持切片和編輯,而不需要復(fù)制緩沖區(qū)。用于性能的高級(jí)用法。
data[1:4] = b'i' # 在原地編輯
print(data) # b'hiello'
4.None Type
None類型表示缺少值。類似于其他語(yǔ)言中的null。
x = None
print(type(x)) # <class 'N.NEType'>
None通常用作可選或缺失值的占位符。
def print_if_not_none(x):
if x is None:
print('x is None')
else:
print(x)
運(yùn)算符可以檢查某些東西是否為None。
x = None
print(x is None) # True
總之,Python配備了多種內(nèi)置數(shù)據(jù)類型,包括數(shù)值、文本、集合、映射等等。選擇適當(dāng)?shù)臄?shù)據(jù)類型有助于高效使用內(nèi)存和提高性能。操作數(shù)據(jù)類型是Python編程的一個(gè)重要部分。
希望這個(gè)概述讓您對(duì)Python中可用的不同數(shù)據(jù)類型有一個(gè)良好的理解,以及眾多的代碼示例展示了它們的用法。