Python基礎(chǔ)之?dāng)?shù)據(jù)類型(一)

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

python系列文檔都是基于python3

  • 數(shù)字
  • 字符串
  • 列表
  • 元組
  • 字典
  • 集合

一俏竞、數(shù)字

特性:

  1. 只能存放一個(gè)值
  2. 一經(jīng)定義纵诞,不可更改
  3. 直接訪問(wèn)
  • 整型
    十進(jìn)制轉(zhuǎn)二進(jìn)制
    bin(10)
    十進(jìn)制轉(zhuǎn)八進(jìn)制
    oct(10)
    十進(jìn)制轉(zhuǎn)十六進(jìn)制
    hex(10)
    • int函數(shù)
    int('10',base=10)  #base=10鳄虱,表示將字符串轉(zhuǎn)換為十進(jìn)制
    int('0b1010',base=2)  #base=2,表示將字符串轉(zhuǎn)換為二進(jìn)制
    int('0o12',base=8)  #base=8,表示將字符串轉(zhuǎn)換為八進(jìn)制
    int('0xa',base=16)  #base=16,表示將字符串轉(zhuǎn)換為十六進(jìn)制
    
  • 布爾
>>> bool(0)  #零表示False
False
>>> bool(1)    #非零數(shù)字自帶的布爾值都是True
True
>>> bool("hello")    #非空的字符串布爾值都是True
True
  • 浮點(diǎn)(float)
    浮點(diǎn)數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示造壮,在計(jì)算機(jī)中用以近似表示任意某個(gè)實(shí)數(shù)。
>>> a=123.3442
>>> type(a)
<class 'float'>
  • 復(fù)數(shù)
    Python支持復(fù)數(shù)骂束,復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成耳璧,可以用a + bj,或者complex(a,b)表示,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型展箱。
>>> 1.3 + 2.3j == 1.3 + 2.3j
True
二旨枯、字符串

由單引號(hào)、雙引號(hào)或者三引號(hào)引起來(lái)的內(nèi)容為字符串混驰。

>>> name = 'LAIN'
>>> type(name)
<class 'str'>
  • 字符串操作
msg = 'Hello World'
print(msg.count('o'))  #統(tǒng)計(jì)元素出現(xiàn)的次數(shù)攀隔;
print(msg.count('o',4,7))  #指定索引位范圍皂贩,顧頭不顧尾計(jì)算元素出現(xiàn)次數(shù);
print(msg.capitalize())  #將字符串第一個(gè)字母大寫(xiě)昆汹,其余全部小寫(xiě)明刷;
print(msg.casefold())  #將字符串所有字母小寫(xiě);
print(msg.lower())  #將字符串所有大寫(xiě)轉(zhuǎn)換為小寫(xiě)
print(msg.upper())  #將字符串所有小寫(xiě)轉(zhuǎn)換為大寫(xiě)
print(msg.center(20))  #將字符串居中满粗,以20個(gè)字符為基準(zhǔn)其余部分以空格填充辈末,進(jìn)行顯示;
print(msg.center(20,'#'))  #將字符串居中映皆,以20個(gè)字符為基準(zhǔn)其余部分以"#"填充挤聘,進(jìn)行顯示;
print(msg.encode(encoding='utf-8',errors=''))  #定義字符串顯示編碼捅彻;
print(msg.find('o'))  #查找字符串元素组去,找到了顯示索引位,找不到顯示-1沟饥;
print(msg.index('o'))  #與find類似添怔,找到了顯示索引位,找不到直接報(bào)錯(cuò)贤旷;
print('_'.join(['Hello','World']))  #字符串拼接广料,以'_'拼接兩個(gè)字符串;
print(msg.replace('Hello','Hi'))  #字符串拼接幼驶,替換指定字符艾杏;
print(msg.split(' '))  #字符串拆分,默認(rèn)以空格為關(guān)鍵字' '盅藻;
print(msg.endswith('d'))  #判斷字符串是否以'd'結(jié)尾购桑,True或者False
print(msg.expandtabs(tabsize=10))  #tab鍵以10個(gè)字符表示
print('{} {}'.format('name','agr'))  #賦值給{}
print('{0}{1}{1}'.format('name','agr'))  #賦值給{},必須按照位置一對(duì)一賦值
print(msg.isalnum())  #判斷是否是字母或數(shù)字
print(msg.isalpha())  #判斷是否是字母
print(msg.isnumeric())  #判斷是否是數(shù)字
print(msg.isdecimal())  #判斷是否是十進(jìn)制
print(msg.isdigit())  #判斷是否是整型數(shù)字
print(msg.isidentifier())  #判斷字符串是否是字母開(kāi)頭
print(msg.islower())  #判斷字符串是否全是小寫(xiě)字母
print(msg.isspace())  #判斷是否是空格
print(msg.istitle())  #判斷是否是標(biāo)題(只有首字母大寫(xiě)例:Helloworld)
print(msg.ljust(20,'#'))  #字符串內(nèi)容向左對(duì)齊氏淑,總共占用20個(gè)字符勃蜘,其余字符以'#'表示
print(msg.rjust(20,'#'))  #字符串內(nèi)容向右對(duì)齊,總共占用20個(gè)字符假残,其余字符以'#'表示
print(msg.lstrip())  #去掉左邊的空格
print(msg.rstrip())  #去掉右邊的空格
print(msg.strip())  #去掉左右兩邊的空格
print(msg.zfill(20))  #右對(duì)齊缭贡,不夠的位數(shù)用0填充,指定20個(gè)字符
三辉懒、列表

列表是最常用的Python數(shù)據(jù)類型阳惹,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。通常作為函數(shù)的返回類型眶俩;列表是由一組元素組成莹汤,元素可以是整數(shù),字符串颠印,元組纲岭,或者是列表抹竹;每個(gè)元素分配一個(gè)數(shù)字,來(lái)表示索引位荒勇,第一個(gè)元素索引位為0柒莉,第二個(gè)為1,以此類推沽翔;列表操作有索引兢孝,切片,加仅偎,乘跨蟹,檢查成員。

  • 列表操作
number = [1,2,3,4,5,6,7,8]
增加
number.append(9)                                      #追加橘沥,在最后一個(gè)元素末尾追加整數(shù)'9'
number.insert(2,88)                                   #插入窗轩,在第二個(gè)索引位插入整數(shù)'88'

刪除
number.remove(5)                                      #刪除值,刪除元素'5'座咆;全量刪除不需要知道元素所在的索引位
del number[3]                                         #刪除索引位為3的元素
number.pop()                                          #默認(rèn)刪除最后一個(gè)痢艺,可以通過(guò)下標(biāo)刪除
number.pop(3)                                         #刪除下標(biāo)為3的元素

修改
number[2] = 'hello'                                   #直接修改,索引位為2的元素

查詢
print(number[2])                                      #查看索引位為2的元素
print(number[0::2])                                   #列表切片介陶,從第一個(gè)元素開(kāi)始堤舒,到最后一個(gè)結(jié)束,步長(zhǎng)為2(間隔一個(gè)元素)
print(number[-3:])                                    #列表切片哺呜,取倒數(shù)三個(gè)元素
print(number[:3])                                     #列表切片舌缤,取前三個(gè)元素
number.index('wangxu')                                #取這個(gè)元素的下標(biāo),如果沒(méi)有直接報(bào)錯(cuò)某残,如果有多個(gè)相同的元素只查找出第一個(gè)

統(tǒng)計(jì)
n2 = [3,2,67,88,23]
count   print('count',number.count('3'))     #統(tǒng)計(jì)出現(xiàn)次數(shù)
clear   number.clear                                  #清空列表
extend  number.extend(n2)                             #合并列表
reverse number.reverse()                              #反轉(zhuǎn)
sort    number.sort()                                 #通過(guò)ascii碼表順序排序
copy    number.copy()                                 #拷貝列表
  • 列表copy
#copy和賦值的區(qū)別国撵,copy是拷貝一份副本,兩個(gè)列表互不影響玻墅;賦值相互影響介牙;
list1 = ['xiaoming','xiaolan','lain','laodeng']
list2 = list1.copy()
list3 = list1
list1.pop()

print("List1:",list1,id(list1))
print("List2:",list2,id(list2))
print("List3:",list3,id(list3))
####
List1: ['xiaoming', 'xiaolan', 'lain'] 57931976
List2: ['xiaoming', 'xiaolan', 'lain', 'laodeng',] 57404872
List3: ['xiaoming', 'xiaolan', 'lain'] 57931976
####
四、元組

元組就是上了枷鎖的列表澳厢,元組是不可改變的耻瑟,主要是用來(lái)讀。元組的標(biāo)志是逗號(hào)赏酥;

  • 元組操作
tuple1 = (1,2,23,45,23,22,111,333,25,76,87,93)
print(tuple1)   #查詢,查詢出元組內(nèi)的元素
print(tuple1.count(23)) #查詢谆构,統(tǒng)計(jì)出'23'出現(xiàn)的次數(shù)
print(len(tuple1))  #查詢裸扶,統(tǒng)計(jì)出元組里有多少元素
print(max(tuple1))  #查詢,統(tǒng)計(jì)出元組里最大的元素
print(min(tuple1))  #查詢搬素,統(tǒng)計(jì)出元組里最小的元素
print(tuple1[:2])   #元組切片呵晨,從頭開(kāi)始截取到索引位為2的元素魏保,不包含索引位為2的元素;顧頭不顧尾
print(tuple1[2:5])
print(tuple1[:])    #元組切片摸屠,從頭開(kāi)始取出所有元素
print(tuple1[-2])   #元組切片谓罗,取出倒數(shù)第二個(gè)元素
print(tuple1[::2])  #元組切片,步長(zhǎng)2(間隔一個(gè)元素)
del tuple1  #刪除元組季二,不可查

#元組本身是不可以刪除和修改的檩咱,但是可以通過(guò)字符串拼接來(lái)實(shí)現(xiàn)
tuple2 = ('xiaoli','haha','lain','laodeng','pangpang','wangwang')
tuple2 = tuple2[:2] + ('xiaohong',) + tuple2[2:]    #元組添加,通過(guò)字符串拼接實(shí)現(xiàn)添加元素
print(tuple2)
tuple2 = tuple2[:2] + tuple2[3:]    #元組刪除胯舷,通過(guò)字符串拼接刪除元素
print(tuple2)
五刻蚯、字典

字典一種key-value的數(shù)據(jù)類型,類似于json串桑嘶;將存儲(chǔ)更復(fù)雜的信息炊汹,獲取更簡(jiǎn)單;

  • key的定義規(guī)則:
    1.不可變逃顶,數(shù)字讨便、字符串、字典以政、元組(定義符合()霸褒,與列表完全一致,唯一不同的是元組內(nèi)元素不可變)
    2.key必須是唯一的,所以字典天生有去重功能
  • value的定義規(guī)則:
    1.任意數(shù)據(jù)類型
  • 字典的操作
dic = {'name':'lain','arg':28}
查詢:
print(dic['name'])
print(dic.get('name'))    #get方法查詢不存在的項(xiàng)不會(huì)報(bào)錯(cuò)

添加:
dic['gender'] = 'female'    #k:v 無(wú)序添加

修改:
dic['name'] = '11'  #key不可修改

刪除:
del     #萬(wàn)能刪除
del dic['name'] #刪除key
  • 自帶函數(shù)方法
dicl = dict.fromkeys()  #快速生成字典
dic.copy()          #淺拷貝妙蔗,只拷貝一層
dic.get()           #值不存在不會(huì)報(bào)錯(cuò)
dic.items()         #打印轉(zhuǎn)換為列表形式
dic.keys()          #取出字典中所有的key值
dic.pop()           #pop刪除傲霸,括號(hào)內(nèi)寫(xiě)key,key不存在會(huì)報(bào)錯(cuò)
dic.popitem()       #隨機(jī)刪除一對(duì)key.val
dic.setdefault()    #添加字典
dic.update()        #添加新字典眉反,添加字典內(nèi)容昙啄,修改字典內(nèi)容
dic.values()        #取出字典所有values值
  • 字典定義
dic = dict()                            #空字典
dic1 = dict({'name':'lain','age':18})
print(dic1)
dic2 = dict(name='lain',age=18)
print(dic2)
dic3 = dict((('name','lain'),('age','18')))
print(dic3)
六、集合

集合是一種無(wú)序的寸五,不重復(fù)的數(shù)據(jù)組合梳凛;集合在python中幾乎起到的所有作用就是兩個(gè)字:唯一

  • 創(chuàng)建集合
#創(chuàng)建集合的兩種方式,一種是直接把一堆元素用大括號(hào){}括起來(lái)梳杏;另一種是用set()韧拒。
set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
set2 = set([1, 2, 3, 4, 5, 6, 'one', 'two'])
print(type(set1))
print(type(set2))
-------
<class 'set'>
<class 'set'>
  • 集合操作
#可以便歷方式訪問(wèn)
set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
for i in set1:
    print(i, end=' ')
--------
1 2 3 4 5 6 two one

#可以通過(guò)'in' 或者 'not in'來(lái)判斷元素是否存在集合中
1 in set1
'one' not in set1

add        #添加元素到集合
update      #添加集合到集合

pop       #隨機(jī)刪除
remove    #指定刪除,如果刪除元素不存在十性,程序報(bào)錯(cuò)
discard   #指定刪除叛溢,如果刪除元素不存在,報(bào)none

clear       #清空
symmetric_difference_update  #差集后劲适,賦予新值楷掉;去除兩個(gè)集合中相同的,留下彼此沒(méi)有的霞势;
  • 集合的模式
- 交集:intersection    print(s1&s2)
- 并集:union       print(s1|s2)
- 差集:difference  print(s1-s2)        
- 子集:issubset    print(s1<=s2)
- 父集:issuperset  print(s1>=s2)
- 對(duì)稱差集:symmetric_difference    print(s1^s2)    #去掉兩個(gè)集合里重復(fù)的
  • 不可變的集合
#有時(shí)候需要集合的數(shù)據(jù)具有穩(wěn)定性烹植,不可增加或刪除斑鸦;就需要用frozenset()函數(shù)冰凍集合;
set3 = frozenset([1, 2, 3, 4, 5, 6, 'three', 'four'])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市草雕,隨后出現(xiàn)的幾起案子巷屿,更是在濱河造成了極大的恐慌,老刑警劉巖墩虹,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘱巾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡败晴,警方通過(guò)查閱死者的電腦和手機(jī)浓冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)尖坤,“玉大人稳懒,你說(shuō)我怎么就攤上這事÷叮” “怎么了场梆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)纯路。 經(jīng)常有香客問(wèn)我或油,道長(zhǎng),這世上最難降的妖魔是什么驰唬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任顶岸,我火速辦了婚禮,結(jié)果婚禮上叫编,老公的妹妹穿的比我還像新娘辖佣。我一直安慰自己,他們只是感情好搓逾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布卷谈。 她就那樣靜靜地躺著,像睡著了一般霞篡。 火紅的嫁衣襯著肌膚如雪世蔗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天朗兵,我揣著相機(jī)與錄音污淋,去河邊找鬼。 笑死余掖,一個(gè)胖子當(dāng)著我的面吹牛寸爆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼而昨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了找田?” 一聲冷哼從身側(cè)響起歌憨,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墩衙,沒(méi)想到半個(gè)月后务嫡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漆改,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年心铃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挫剑。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡去扣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出樊破,到底是詐尸還是另有隱情愉棱,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布哲戚,位于F島的核電站奔滑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顺少。R本人自食惡果不足惜朋其,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脆炎。 院中可真熱鬧梅猿,春花似錦、人聲如沸腕窥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)簇爆。三九已至癞松,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間入蛆,已是汗流浹背响蓉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哨毁,地道東北人枫甲。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親想幻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粱栖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Python 簡(jiǎn)介Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性脏毯、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言闹究。Python 的設(shè)...
    在暴風(fēng)雨中逆襲閱讀 1,722評(píng)論 0 12
  • 〇、前言 本文共108張圖食店,流量黨請(qǐng)慎重渣淤! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍吉嫩。 ...
    Raxxie閱讀 18,954評(píng)論 17 410
  • 在開(kāi)發(fā)中我們會(huì)遇到各種各樣的非常奇怪的問(wèn)題价认,有些問(wèn)題是百思不得騎姐。其實(shí)這些問(wèn)題大都是因?yàn)槲覀儾涣私獍沧績(jī)?nèi)部運(yùn)行原...
    wecent閱讀 1,059評(píng)論 1 14
  • 我放逐的愛(ài)情自娩。 你說(shuō)永遠(yuǎn)是個(gè)不真謊言用踩。 彼此是個(gè)開(kāi)始的錯(cuò)誤,彼此傷心椒功。 怎么做才能忘記捶箱,這撕心的淚。 緣分不給的份...
    羅明俊閱讀 259評(píng)論 0 0
  • 現(xiàn)在的愛(ài)情里晨川,女方永遠(yuǎn)是弱勢(shì)的。無(wú)論怎么辯駁删豺,都是不得不承認(rèn)的事實(shí)共虑。 《唐人街探案2》的熱映,讓我們?cè)俅蜗肫痍愃颊\(chéng)...
    徠徠小菇?jīng)?/span>閱讀 211評(píng)論 0 0