2 資料型別

2021-08-18 05:48:24 字數 4453 閱讀 7463

在python中所有的資料型別都是類,每乙個變數或常量都是類的「例項」。沒有基本資料型別的概念,整數、浮點和字串都屬於型別。

python有6種標準資料型別:數字、字串、列表、元組、集合和字典,列表、元組、集合和字典可以儲存多項資料,他們每乙個都是一種資料結構,這一節先介紹數字與字串。

python3中的所有整數都表示為長整數,理論上無限長(這一點尤為方便

預設情況下乙個整數值,例如16表示的十進位制整數。

那麼其他進製如

浮點型別主要用來儲存小數數值,python浮點型別為float,python只支援雙精度浮點型別,而且是與本機相關。

浮點型別可以使用小數表示,也可以使用數學計數法表示,數學計數法中會使用大寫或小寫的e表示10的指數,如3.36e2。

複數在數學非常重要概念,無論是理論物理學,還是電氣工程實踐中都經常使用。但是很多計算機語言都不支援複數,而python是支援複數的,這使得python能夠很好地用來進行科學計算。

python中複數型別為complex,例如1+2j表示的是實部1,虛部2的複數

c=1+2

jd=6+5

jprint(c+d)

python中布林型別為bool,bool是int的子類,它只有兩個值:true和false。

bool(0) #false

bool(2) #true

bool('') #false

bool(' ') #true 非空

bool() #false

bool({}) #false

注: 任何型別資料都可以通過bool()函式轉換為布林值,那些被認為「沒有的」、「空的」值會轉換為false,反之轉換為true。如none(空物件)、false、0、0.0、0j(複數)、」(空字串)、(空列表)、()(空元組)和{}(空字典)這些數值會轉換為false,否則是true。多個數字型別資料可以數學計算,由於參與進行數學計算的數值型別可能不同,此時會發生隱式型別轉換。規則如下:

布林數值可以隱式轉換為整數,布林值true轉換為整數1,布林值false轉換整數0。

int(false) #0

int(5.6) #5

float(5) #5.0

float(true) #1.0

由字元組成的一串字串行,稱為「字串」,字串是有順序的,從左到右,索引從0開始依次遞增。python中字串型別是str。

s='sdfvsauyjdbvsuay'

# s="sdfvsauyjdbvsuay"

print(s)

"""對於字串中的單引號(')和雙引號(")也可以不要轉義符,

在包含單引號的字串中使用雙引號包裹字串;

在包含雙引號的字串中使用單引號包裹字串。

"""

s=r'\tt'
s1='''

a\n b

'''print(s1)

# 輸出

a b

[finished in

0.3s]

注:在長字串中如果包含特殊字元,也需要轉義的在實際的程式設計過程中,經常會遇到將其他型別變數與字串拼接到一起,並進行格式化輸出。例如計算的金額需要保留小數點後四為、數字需要右對齊等,這些都需要格式化。

在字串格式化時可以使用字串的format()方法,以及佔位符,具體示例如下:

name = 'xugongming38'

age = 18

s = '我的年齡為'.format(name,age)

# s = '我的年齡為'.format(age,name)

# s = '的年齡為'.format(n=name,a=age)

print(s)

#輸出xugongming38我的年齡為18

[finished in

0.3s]

字串中可以有佔位符({}表示的內容),配合format()方法使用,會將format()方法中的引數替換佔位符內容。佔位符可以用引數索引表示,也可以使用引數的名字表示佔位符,n和a都是引數名字。

佔位符中還可以有格式化控制符,對字串的格式進行更加精準控制。不同的資料型別在進行格式化時需要不同的控制符(與c/c++大同小異了。。),如下

s = '的年齡為,工資為元每秒'.format(name,age,money)

print(s)

在給定的字串中查詢子字串是比較常見的操作。字串類(str)中提供了find和rfind方法用於查詢子字串,返回值是查詢子字串所在的位置,沒有找到返回-1(len(source)返回字串長度,注意len是函式)。

source = 'i am a genius!'

index = source.find('a')

print(index)

index = source.rfind('a')

print(index)

index = source.find('am')

print(index)

index = source.rfind('am')

print(index)

#輸出252

2[finished in 0.3

s]

注: 函式與方法的區別是方法是定義在類中的函式,在類的外部呼叫時需要通過類或物件呼叫,例如上述**source.find()就是呼叫字串物件source的find方法,find方法是在str類中定義的。而通常的函式不是類中定義的,也稱為頂層函式,他們不屬於任何乙個類,呼叫時直接使用函式即可len(),就是呼叫len函式,只不過它的引數是字串物件source。在實際的程式設計過程中,經常會用到字串與數字相互轉換。

4.4.1字串轉換為數字

字串轉換為數字可以使用int()和float()實現,這兩個函式實現數字型別之間的轉換,事實上這兩個函式也可以接收字串引數,如果字串能成功轉換為數字,則返回數字,否則丟擲錯誤。

print(int('012'))

print("..........")

print(int('1.0'))

# 輸出

12..........

traceback (most recent call last):

file "c:\users\dell\desktop\b.py", line 3, in

print(int('1.0'))

valueerror: invalid literal for

int() with base 10: '1.0'

[finished in

0.3s with exit code 1]

#預設情況下int()函式都將字串引數當成是十進位制數字進行轉換

#所以int('ab')會失敗。int()函式也可以指定基數(進製)

print(int('ab',16))

# 輸出

171[finished in

0.3s]

{}

4.4.2數字轉換為字串

數字轉換字串有很多種方法,字串格式化可以實現將數字轉換為字串。另外,python中也字串提供了類似於int()的str()函式。

print(str(3.14))

print(str(false))

print(str([1,2,3]))

# 輸出

3.14

false

[1, 2, 3]

[finished in

0.3s]

s = ''.format(12.889)# 格式化前面提過

print(s) # 如果只有乙個引數佔位符索引可以省略。

#輸出12.9

[finished in

0.2s]

2 資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 1 string string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個 key對應乙個value。string型別是二進位制...

2 資料型別

1.list 列表型別 列表就是一些列資料的順序組合,並且組合之後可以修改。列表的標誌符號 列 式 變數 值,值,值 list列表型別 識別符號號是 可以修改 listvar 櫻 白 美 瀧 觀 12 輸出變數的值 print listvar 輸出型別 print type listvar 2.tu...

Oracle資料型別2

在oracle8中定義了 標量 scalar 復合 composite 引用 reference 和lob四種資料型別,標量 scalar 標量型別與資料庫的列所使用的型別相同,此外它還有一些擴充套件。它又分為七個組 數字 字元 行 日期 行標識 布林和可信。數字,它有三種基本型別 number p...