002.Python基本數(shù)據(jù)類型

Python基本數(shù)據(jù)類型

1. 變量

  • Python 中的變量不需要聲明。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。

  • 在 Python 中,變量就是變量,它沒有類型,我們所說(shuō)的"類型"是變量所指的內(nèi)存中對(duì)象的類型。

  • 等號(hào)(=)用來(lái)給變量賦值。

  • 等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。例如:

age = 18
name = "jentle"
height = 182.5
print(age)
print(name)
print(height)

2. 多個(gè)變量賦值

Python允許你同時(shí)為多個(gè)變量賦值。

# 為變量a,b,c同時(shí)賦值1
a = b = c = 1
print(a,b,c)

# 為變量a,b,c分別賦值為1,2,3
a , b , c = 1,2,3
print(a,b,c)

3. 標(biāo)準(zhǔn)數(shù)據(jù)類型

Python3 中有六個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型:

  • Number(數(shù)字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Set(集合)
  • Dictionary(字典)

不可變數(shù)據(jù): Number(數(shù)字)、String(字符串)、Tuple(元組)

不可變數(shù)據(jù): List(列表)、Dictionary(字典)、Set(集合)

3.1 Number(數(shù)字)

Python3 支持 int、float、bool、complex(復(fù)數(shù))。

  • 在Python 3里,只有一種整數(shù)類型 int,表示為長(zhǎng)整型,沒有 python2 中的 Long。
  • 像大多數(shù)語(yǔ)言一樣,數(shù)值類型的賦值和計(jì)算都是很直觀的。
  • 內(nèi)置的 type() 函數(shù)可以用來(lái)查詢變量所指的對(duì)象類型。
a,b,c,d = 10,10.1,True,4+3j
print("type(a) =", type(a))
print("type(b) =", type(b))
print("type(c) =", type(c))
print("type(d) =", type(d))
output:
type(a) = <class 'int'>
type(b) = <class 'float'>
type(c) = <class 'bool'>
type(d) = <class 'complex'>

此外還可以用 isinstance 來(lái)判斷:

a = 1
b = isinstance(a,int)
c = isinstance(a,str)
print(b)
print(c)

output:
True
False

區(qū)別就是:

  • type()不會(huì)認(rèn)為子類是一種父類類型。

  • isinstance()會(huì)認(rèn)為子類是一種父類類型。

*注意:在 Python2 中是沒有布爾型的,它用數(shù)字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定義成關(guān)鍵字了,但它們的值還是 1 和 0,它們可以和數(shù)字相加。 *

補(bǔ)充說(shuō)明: 刪除對(duì)象引用

del 刪除引用而不是刪除對(duì)象,對(duì)象由自動(dòng)垃圾回收機(jī)制刪除。

c = True
print(c)#output:True
# 刪除對(duì)象引用
del c
print(c)#NameError: name 'c' is not defined

3.2 Str(字符串)

Python中的字符串用單引號(hào)(')或雙引號(hào)(")括起來(lái),同時(shí)使用反斜杠(\)轉(zhuǎn)義特殊字符。

字符串的截取的語(yǔ)法格式如下:

變量[頭下標(biāo),尾下標(biāo)]
注意:s[begin:end]返回從索引begin到end-1的字符串。

索引值以 0 為開始值,-1 為從末尾的開始位置。

加號(hào) (+) 是字符串的連接符, 星號(hào) (*) 表示復(fù)制當(dāng)前字符串,緊跟的數(shù)字為復(fù)制的次數(shù)。

a = 'GoodBye'
print(a) #輸出字符串
print(a[0])#輸出字符串第一個(gè)字符
print(a[-1])#輸出字符串最后一個(gè)字符
print(a[0:-1])#輸出第一個(gè)到倒數(shù)第二個(gè)的所有字符
print(a[2:5])#輸出從第三個(gè)開始到第四個(gè)的字符
print(a[2:])#輸出從第三個(gè)開始的后的所有字符
print(a*2)#輸出字符串兩次
print(a + " Everyone!")#連接字符串

#output:
# GoodBye
# G
# e
# GoodBy
# odB
# odBye
# GoodByeGoodBye
# GoodBye Everyone!

Python 使用反斜杠()轉(zhuǎn)義特殊字符,如果你不想讓反斜杠發(fā)生轉(zhuǎn)義,可以在字符串前面添加一個(gè) r,表示原始字符串:

print('Python\nStudy')#Python 換行 Study
print(r'Python\nStudy')#Python\nStudy

Python 使用 """...""" 或者 '''...''' 跨越多行

print(
    '''
    Hello
    EveryBody
    '''

    """
    Hello
    EveryBody
    """
)


    Hello
    EveryBody

    Hello
    EveryBody

注意: 與 C 字符串不同的是,Python 字符串不能被改變。向一個(gè)索引位置賦值,比如word[0] = 'm'會(huì)導(dǎo)致錯(cuò)誤。

3.3 List(列表)

List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。

列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。列表中元素的類型可以不相同,它支持?jǐn)?shù)字,字符串甚至可以包含列表(所謂嵌套)。

列表是寫在方括號(hào)([])之間、用逗號(hào)分隔開的元素列表。

和字符串一樣,列表同樣可以被索引和截取,列表被截取后返回一個(gè)包含所需元素的新列表。

列表截取的語(yǔ)法格式如下:

變量[頭下標(biāo),尾下標(biāo)]
注意:s[begin:end]返回從索引begin到end-1的字符串。

索引值以 0 為開始值,-1 為從末尾的開始位置。

加號(hào)(+)是列表連接運(yùn)算符,星號(hào)(*)是重復(fù)操作。如下實(shí)例:

list = [8,10.8,True,"Python",123,3.1415,"Hello"]
shortList = ["Hello",678]

print(list)             # 輸出完整列表
print(list[0])          # 輸出列表第一個(gè)元素
print (list[1:3])       # 從第二個(gè)開始輸出到第三個(gè)元素
print (list[2:])        # 輸出從第三個(gè)元素開始的所有元素
print (shortList * 2)    # 輸出兩次列表
print (list + shortList) # 連接列表

與Python字符串不一樣的是,列表中的元素是可以改變的:

a = [1,3,5,7,9]
a[0] = 2
print(a)
a[2:4] = [4,5]
print(a)
a[3:4] = []
print(a)
# output
# [2, 3, 5, 7, 9]
# [2, 3, 4, 5, 9]
# [2, 3, 4, 9]

注意:

  • 1、List寫在方括號(hào)之間,元素用逗號(hào)隔開。
  • 2、和字符串一樣,list可以被索引和切片。
  • 3、List可以使用+操作符進(jìn)行拼接。
  • 4、List中的元素是可以改變的。

3.4 Tuple(元組)

元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組寫在小括號(hào) () 里,元素之間用逗號(hào)隔開。

元組中的元素類型也可以不相同:

a = ('abc',3.1415,'Python',False,8)
b = (123,'Hello')
print(a)#輸出完整元組
print(a[0])#輸出元組的第一個(gè)元素
print(a[1:3])#輸出從第二個(gè)元素開始到第三個(gè)元素
print(a[2:])#輸出從第三個(gè)元素開始的所有元素
print(b*2)#輸出兩次元組
print(a + b)#連接元組
('abc', 3.1415, 'Python', False, 8)
abc
(3.1415, 'Python')
('Python', False, 8)
(123, 'Hello', 123, 'Hello')
('abc', 3.1415, 'Python', False, 8, 123, 'Hello')

元組與字符串類似,可以被索引且下標(biāo)索引從0開始,-1 為從末尾開始的位置。也可以進(jìn)行截取。

其實(shí),可以把字符串看作一種特殊的元組。

構(gòu)造包含 0 個(gè)或 1 個(gè)元素的元組比較特殊,所以有一些額外的語(yǔ)法規(guī)則:

a = ()    # 空元組
b = (20,) # 一個(gè)元素,需要在元素后添加逗號(hào)

string、list和tuple都屬于sequence(序列)。

注意:

  • 1、與字符串一樣,元組的元素不能修改。
  • 2、元組也可以被索引和切片,方法一樣。
  • 3、注意構(gòu)造包含0或1個(gè)元素的元組的特殊語(yǔ)法規(guī)則。
  • 4、元組也可以使用+操作符進(jìn)行拼接。

3.5 Set(集合)

集合(set)是一個(gè)無(wú)序不重復(fù)元素的序列。

基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。

可以使用大括號(hào) { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來(lái)創(chuàng)建一個(gè)空字典。

#使用大括號(hào) { } 函數(shù)創(chuàng)建集合
s = {"a","b","c","d"}
print(s)#output:{'d', 'a', 'b', 'c'}
# 重復(fù)的元素被自動(dòng)去掉
s = {1,2,3,4,5,2,3,4}
print(s)#output: {1, 2, 3, 4, 5}#output:
# 集合中的元素類型也可以不相同
s = set({"1","2","3",4})
print(s)#output:{'2', 4, '3', '1'}
#創(chuàng)建一個(gè)空集合必須用 set() 而不是 { }(因?yàn)?{ } 是用來(lái)創(chuàng)建一個(gè)空字典。)
a = {}
b = set()
print("a類型:", type(a))#output:a類型: <class 'dict'>
print("b類型:", type(b))#output:b類型: <class 'set'>

s = {"a","b","c","d"}
print(s)#output:{'d', 'a', 'b', 'c'}
# 通過(guò)add(key)方法可以添加元素到set中,可以重復(fù)添加,但不會(huì)有效果
s.add("e")
print(s)#{'b', 'e', 'a', 'c', 'd'}
s.add("a")
print(s)#{'b', 'e', 'a', 'c', 'd'}
# 通過(guò)remove(key)方法可以刪除元素
s.remove("c")
print(s)#{'e', 'd', 'a', 'b'}

3.6 Dictionary(字典)

字典(dictionary)是Python中另一個(gè)非常有用的內(nèi)置數(shù)據(jù)類型。

列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象集合。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。

字典是一種映射類型,字典用"{ }"標(biāo)識(shí),它是一個(gè)無(wú)序的鍵(key) : 值(value)對(duì)集合。

鍵(key)必須使用不可變類型。

在同一個(gè)字典中,鍵(key)必須是唯一的。

sDict = {}
sDict["a"] = "One"
sDict[2] = "Two"
print(sDict)#output:{'a': 'One', 2: 'Two'}
print(sDict["a"])#output:One
sDict["a"] = 1
print(sDict)#output:{'a': 1, 2: 'Two'}
bDict = {"name":"Jentle","age":18,"height":182.5}
print(bDict)#output:{'name': 'Jentle', 'age': 18, 'height': 182.5}
print(bDict.keys())#output:dict_keys(['name', 'age', 'height'])
print(bDict.values())#output:dict_values(['Jentle', 18, 182.5])

注意:

  • 1、字典是一種映射類型,它的元素是鍵值對(duì)。
  • 2、字典的關(guān)鍵字必須為不可變類型,且不能重復(fù)。
  • 3、創(chuàng)建空字典使用 { }。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容