Python 基础知识(二)
一、基礎(chǔ)數(shù)據(jù)類型
1、數(shù)字int
數(shù)字主要是用于計(jì)算用的,使用方法并不是很多,就記住一種就可以:
#bit_length() 當(dāng)十進(jìn)制用二進(jìn)制表示時(shí),最少使用的位數(shù) # -*- coding:UTF-8 -*- v = 11 data = v.bit_length() print(data) # 二進(jìn)制: # 0 0 0 0 0 0 1 0 # 十進(jìn)制: # 128 64 32 16 8 4 2 1 #因?yàn)?1小于16,而16占用5位。11最小占用應(yīng)該為4位。 輸出內(nèi)容為:4?2、布爾值
布爾值就兩種:True,False。就是反應(yīng)條件的正確與否。
真 ? 1 ? True。
假 ? 0 ? False。 ? ?
""" int ---> str :str(int) ##數(shù)字轉(zhuǎn)為字符串 str ---> int :int(str) str必須全部是數(shù)字組成。 ##字符串轉(zhuǎn)為數(shù)字int --- > bool 0 False 非零 True ##數(shù)字轉(zhuǎn)為bool bool ---> int int(True) 1 int(False) 0 ##布爾轉(zhuǎn)為數(shù)字str ---> bool '' False 非空字符串 True ##字符串轉(zhuǎn)為bool. """3、字符串
3.1、字符串的索引
? ? 索引即下標(biāo),就是字符串組成的元素從第一個(gè)開始,初始索引為0以此類推。
A = 'alex bog d3dfj%sdkfA' s1 = A[0] print(s1) #輸出內(nèi)容:a s2 = A[3] print(s2) #輸出內(nèi)容:x s3 = A[-1] print(s3) #輸出內(nèi)容:A3.2、字符串的切片
切片就是通過索引(索引:索引:步長)截取字符串的一段,形成新的字符串(原則就是顧頭不顧腚)
a = 'ABCDEFGHIJK' print(a[0:4]) #輸出: ABCD print(a[2:5]) #輸出:CDE print(a[0:]) #后面區(qū)間不加表示默認(rèn)輸出到最后。輸出:ABCDEFGHIJK print(a[0:5:2]) #加步長,最后面的2為步長。輸出:ACE print(a[5:0:-2]) #反向步長。輸出:FDB3.3、字符串的方法
a = 'cd Adfsdfs 12EF dG677JK' #capitaliza方法 首字母大寫print(a.capitalize()) #Cd adfsdfs 12ef %g677jk #swapcase方法 大小寫翻轉(zhuǎn) print(a.swapcase()) #CD aDFSDFS 12ef %g677jk #title 每個(gè)單詞的首字母大寫print(a.title()) #Cd Adfsdfs 12Ef Dg677Jk #center方法 內(nèi)容居中,總長度,空白處填充print(a.center(30)) # cd Adfsdfs 12EF dG677JK 空白處用*填補(bǔ) r =a.center(30,"*") print(r) #***cd Adfsdfs 12EF dG677JK****#count方法 統(tǒng)計(jì)字符串元素出現(xiàn)的個(gè)數(shù) r = a.count("d") #統(tǒng)計(jì)“d”在語句中出現(xiàn)的次數(shù) print(r) ## 輸出結(jié)果: 4r = a.count("d",0,5) #統(tǒng)計(jì)“d”在下標(biāo)區(qū)間為0到5中間出現(xiàn)的次數(shù) print(r) #輸出結(jié)果: 2 #startwith 判斷是否以...開頭 s = a.startswith('c') print(s) #返回布爾值:True s = a.startswith('A',3,6) print(s) #在下標(biāo)3到6間查找是否以大寫字母A開頭 #判斷是否以...結(jié)尾 s= a.endswith('k') print(s) ##返回布爾值:falses4 = a.find('A',0,6) print(s4) ##找不到就返回-1(數(shù)組下標(biāo)),找到就返回內(nèi)容對(duì)應(yīng)的下標(biāo),此處返回A對(duì)應(yīng)的數(shù)組下標(biāo)4#split 以什么分割,最終形成一個(gè)列表此列表不含有這個(gè)分割的元素。 ret9 = 'title,Tilte,atre,'.split('t') print(ret9) ##輸出結(jié)果:['', 'i', 'le,Til', 'e,a', 're,']#strip方法 name = '*start**' #去除語句中所有的“*” print(name.strip('*')) 輸出結(jié)果: start #去除語句頭部的“*” print(name.lstrip('*')) 輸出結(jié)果: start** #去除語句尾部的“*” print(name.rstrip('*')) 輸出結(jié)果: *start#replace 替換 name = 'alex say :i have one tesla,my name is alex. print(name.replace('alex','sb',1)) #將Alex替換成sb,后標(biāo)位置為1時(shí),替換一個(gè)。后標(biāo)位置的數(shù)字表示要替換的個(gè)數(shù)。#is方法 name = 'jenxin123' print(name.isalnum()) #字符串由字母和數(shù)字組成 print(name.isalpha()) #字符串由字母組成 print(name.isdigit()) #字符串由數(shù)字組成 View Code?4、元組
元組被稱為只讀列表,即數(shù)據(jù)可以被查詢,但不能被修改,所以,字符串的切片操作同樣適用于元組。例:(1,2,3)("a","b","c")
5、列表
5.1、增
li = ['alex',123,True,(1,2,3, ' wusir '),[1,2,3, ' 小明'],{ 'name','alex '}]#insert 按著索引去增加 # li.insert(0,55) # print(li) # 輸出:[55, 'alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f \xe6\x98\x8e'], set(['name', 'alex '])] #append 追加到最后 # li.append('aaa') # print(li) #輸出內(nèi)容: [55, 'alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f \xe6\x98\x8e'], set(['name', 'alex ']), 'aaa'] #extend 迭代的去增加 # li.extend(['a,q,w'])print(li) #輸出內(nèi)容:['alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f\xe6\x98\x8e'], set(['name', 'alex ']), 'a,q,w'] 列表的增
5.2、刪
pop 按著位置去刪除,有返回值 # l1 = li.pop(1) # print(l1) #輸出:123 # print(li) #輸出:['alex', True, (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f\xe6\x98\x8e'], set(['name', 'alex '])]#del 按著位置去刪除,也可以切片刪除,沒有返回值 # del li[1:3] # print(li) #輸出:['alex', (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f\xe6\x98\x8e'], set(['name', 'alex '])] #remove 按著元素去刪除 li.remove(123) # print(li) #輸出: ['alex', True, (1, 2, 3, ' wusir '), [1, 2, 3, ' \xe5\xb0\x8f\xe6\x98\x8e'], set(['name', 'alex '])] #clear 清空列表 li.clear() 列表的刪5.3、改
# li = [1,'a','b','c',2,3] # li[1] = 'dfsdfsdfsdfgbc' # print(li) # 輸出:[1, 'dfsdfsdfsdfgbc', 'b', 'c', 2, 3] # li[1:3] = ['c','ddddssgvb'] # print(li) 列表的改5.4、查
a = ["a","b","g","c","d","c"] #切片去查,或者循環(huán)去查。 其他操作:# count(數(shù))(方法統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)) # print(a.count("a")) #輸出:1 # index(方法用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置) # print(a.index("c")) #輸出:2 # sort (方法用于在原位置對(duì)列表進(jìn)行排序)。 a.sort() print(a) #輸出: ['a', 'b', 'c', 'c', 'd', 'g'] print(a.sort()) # None # reverse (方法將列表中的元素反向存放) a.reverse() print(a) # 輸出: ['g', 'd', 'c', 'c', 'b', 'a'] 列表的查?6、字典
字典是python中唯一的映射類型,采用鍵值對(duì)(key-value)的形式存儲(chǔ)數(shù)據(jù)。python對(duì)key進(jìn)行哈希函數(shù)運(yùn)算,根據(jù)計(jì)算的結(jié)果決定value的存儲(chǔ)地址,所以字典是無序存儲(chǔ)的,且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數(shù)字、字符串、元組。
字典(dictionary)是除列表意外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對(duì)象結(jié)合,字典是無序的對(duì)象集合。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
字典:存儲(chǔ)數(shù)據(jù)多,關(guān)系型數(shù)據(jù),查詢速度快(二分查找)。 3.6版本之前,字典是無序的,3.6之后字典是有序的。字典的key是唯一的。key 必須是不可變的數(shù)據(jù)類型。key:不可變的數(shù)據(jù)類型(可哈希):str,bool,tuple,int。value:任意數(shù)據(jù)類型。 數(shù)據(jù)類型分類:不可變的數(shù)據(jù)類型(可哈希):str,bool,tuple,int可變的數(shù)據(jù)類型:dict,list,set。容器類數(shù)據(jù)類型:list,tuple,dict,set. View Code?6.1、增
#1、 setdefault 在字典中添加鍵值對(duì),如果只有鍵那對(duì)應(yīng)的值是none,但是如果原字典中存在設(shè)置的鍵值對(duì),則他不會(huì)更改或者覆蓋。 dic = {'name_list':['b哥', '張帝', '人帥', 'kitty'],'dadong':{'name':'dadong','age': 46,'sex': 'ladyboy',}, } dic.setdefault('k','v') print(dic)#2、dic['key1']='value1' ,有則替換,無則添加 字典的增6.2、刪
1、 pop根據(jù)key刪除鍵值對(duì),并返回對(duì)應(yīng)的值,如果沒有key,則返回默認(rèn)的返回值。 dic_pop = dic.pop("name_list",'無返回值') print(dic_pop) #輸出:['b哥', '張帝', '人帥', 'kitty'] print(dic) #輸出:{'dadong': {'name': 'dadong', 'age': 46, 'sex': 'ladyboy'}} 2、隨機(jī)刪除字典中某個(gè)鍵值對(duì),將刪除的鍵值對(duì)元組的形式返回。 dic_pop1 = dic.popitem() print(dic_pop1) #輸出:('dadong', {'name': 'dadong', 'age': 46, 'sex': 'ladyboy'}) 3、clear 清空字典 dic_clear = dic.clear() print(dic,dic_clear) #輸出: {} None 字典的刪6.3、改
dic1 = {'name':"jin","age":18,"sex":"male"} dic2 = {"name":"alex","wegint":75} dic2.update(dic1) #將dic1所有的鍵值對(duì)覆蓋添加(相同的覆蓋,沒有的添加)到dic2中。 print(dic2) #輸出:{'name': 'jin', 'wegint': 75, 'age': 18, 'sex': 'male'} 字典的改6.4、查
value = dic["name"] print(value) #輸出:報(bào)錯(cuò) KeyError: 'name' print(value) #輸出: ['b哥', '張帝', '人帥', 'kitty']value2 = dic.get("123","默認(rèn)返回值") #輸出:默認(rèn)返回值 print(value2) 字典的查6.5、字典的循環(huán)
#字典的循環(huán) dic = {"name":"jin","age":18,"sex":"male"} for key in dic:print(key) #輸出:name age sexfor item in dic.items():print(item) #輸出:('name', 'jin') ('age', 18) ('sex', 'male')for key,value in dic.items():print(key,value) #輸出內(nèi)容:name jin age 18 sex male 字典循環(huán)?7、練習(xí)題
練習(xí)一: l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 10], 'taibai'] #1.將'alex'全部變成大寫,放回原處 #2.給['oldboy', 'ritian', 99]追加一個(gè)元素'女神' #3.將'ritian'首字母大寫,放回原處 #4.將10通過數(shù)字相加,或者字符串相加變成100# l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 10], 'taibai'] # l1[2]=l1[2].upper() # l1[4].append('女神') # l1[4][1]=l1[4][1].capitalize() # l1[4][2]=str(l1[4][2]+90) # print(l1) # l1[4][2]=int(l1[4][2])-90 # l1[4][2]=str(l1[4][2])+'0' # print(l1)練習(xí)二: #######練習(xí)2########### dic = {'name_list':['東哥', '張帝', '人帥', 'kitty'],'大東':{'name':'dadong','age': 46,'sex': 'ladyboy',}, } #1,['大東', '張帝', '人帥', 'kitty']追加一個(gè)元素,'騎兵' #2,將kitty全部變成大寫。 #3,將老男孩 改成oldboy。 #,將ladyboy首字母大寫。 # dic['name_list'].append('騎兵') # dic['name_list'][-2]=dic['name_list'][-2].upper() # dic['老男孩']['name']='oldboy' # dic['老男孩']['sex']=dic['老男孩']['sex'].capitalize() # print(dic) 練習(xí)題?
轉(zhuǎn)載于:https://www.cnblogs.com/dadonggg/p/8807281.html
總結(jié)
以上是生活随笔為你收集整理的Python 基础知识(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孕妇做梦梦到春梦是什么意思
- 下一篇: Python模块——subprocess