在python中所有的資料型別都是類,每乙個變數或常量都是類的「例項」。沒有基本資料型別的概念,整數、浮點和字串都屬於型別。python3中的所有整數都表示為長整數,理論上無限長(這一點尤為方便)python有6種標準資料型別:數字、字串、列表、元組、集合和字典,列表、元組、集合和字典可以儲存多項資料,他們每乙個都是一種資料結構,這一節先介紹數字與字串。
預設情況下乙個整數值,例如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...