strpython
s1 = 'jarvis' #capitalize 首字母大寫,其他變小寫 print(s1.capitalize()) #swapcase 大小寫翻轉 print(s1.swapcase()) #title 每一個單詞的首字母大寫 msg= 'jarvis one' print(msg.title()) s1 = 'jarvis' #center(總長度、寬度,填充物) 居中 print(s1.center(20)) print(s1.center(20,'*')) #find :經過元素找索引,找到第一個就返回,找不到 返回-1 #index:經過元素找索引,找到第一個就返回,找不到 報錯 print(s1.find('a')) print(s1.find('r')) print(s1.find('o')) print(s1.index('o'))
元組(tuple)面試
#元組中若是隻有一個元素,而且沒有逗號,那麼它不是元組,它與所改元素的數據類型一致。 tu1 = (2,3,4) tu1 = (2) tu1 = ('太白') tu1 = ([1,2,3]) tu1 = (1,) print(tu1,type(tu1)) tu = (1,2,3,3,3,2,2,3,) #count 計數 print(tu.count(3)) tu = ('one', 'two', 'one') #index 經過元素去找索引 print(tu.index('one'))
列表api
l1 = ['one', 'two', 'three', 'four'] #count pass #index 經過元素去找索引 print(l1.index('four')) #sort 排序,數字排序纔是有意義的 l1 = [5, 4, 3, 7, 8, 6, 1, 9] l1.sort() #默認從小到大排序 l1.sort(reverse=True) #從大到小排序 l1.reverse() #反轉 print(l1) #列表能夠相加追加在後面 列表不去重 l1 = [1, 2, 3] l2 = [1, 2, 3, 'one', 'two', 'three'] print(l1 + l2) #列表與數字相乘複製三次 l1 = [1, 'two', 3] l2 = l1*3 print(l2) l1 = [11, 22, 33, 44, 55] #索引爲奇數對應的元素刪除(不能一個一個刪除,此l1只是舉個例子,裏面的元素不定)。 #正常思路: #先將全部的索引整出來。 #加以判斷,index % 2 == 1: pop(index) for index in range(len(l1)): if index % 2 == 1: l1.pop(index) print(l1) #列表的特性:(順沿) l1 = [11, 22, 33, 44, 55] #最簡單的: del l1[1::2] print(l1) l1 = [11, 22, 33, 44, 55] #倒序法刪除元素 for index in range(len(l1)-1,-1,-1): if index % 2 == 1: l1.pop(index) print(l1) #思惟置換 l1 = [11, 22, 33, 44, 55] new_l1 = [] for index in range(len(l1)): if index % 2 ==0: new_l1.append(l1[index]) print(new_l1) l1 = new_l1 print(l1) # 循環一個列表的時,最好不要改變列表的大小,這樣會影響你的最終的結果。
字典網絡
#字典的補充 #update 增長鍵值對 修改 元組拆包後添加鍵值對 dic = {'name': 'jarvis', 'age': 18} dic.update(hobby='運動', hight='175') dic.update(name='one') dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')]) # 面試會考 print(dic) #update 其餘用法更新 dic1 = {"name":"jarvis","age":18,"sex":"man"} dic2 = {"name":"alex","weight":175} dic1.update(dic2) #更新,有則覆蓋,無則添加 print(dic1) # {'name': 'jarvis', 'age': 18, 'sex': 'man', 'weight': 175} print(dic2) #fromkeys 來自鍵,這個鍵來自於一個可迭代對象,值共用一個 dic = dict.fromkeys('abc', 100) dic = dict.fromkeys([1, 2, 3], 'jarvis') #坑:值共用一個,面試題 dic = dict.fromkeys([1,2,3],[]) dic[1].append(666) print(dic) dic = {'k1': 'one', 'k2': 'two', 'k3': 'three', 'age': 18} #將字典中鍵含有'k'元素的鍵值對刪除。 #錯誤方法 for key in dic: if 'k' in key: dic.pop(key) print(dic) #循環一個字典時,若是改變這個字典的大小,就會報錯。 dic = {'k1': 'one', 'k2': 'two', 'k3': 'three', 'age': 18} l1 = [] for key in dic: if 'k' in key: l1.append(key) print(l1) for i in l1: dic.pop(i) print(dic) for key in list(dic.keys()): #強制轉化成列表['k1', 'k2', 'k3','age'] if 'k' in key: dic.pop(key) print(dic)
數據類型的轉換app
# 0,''(),[],{},set(),None 轉換成bool值爲False
編碼的進階學習
ASCII碼:包含英文字母,數字,特殊字符與01010101對應關係。編碼
GBK:只包含本國文字(以及英文字母,數字,特殊字符)與0101010對應關係。code
Unicode:包含全世界全部的文字與二進制0101001的對應關係。對象
UTF-8:包含全世界全部的文字與二進制0101001的對應關係(最少用8位一個字節表示一個字符)。排序
不一樣的密碼本之間可否互相識別?不能。
數據在內存中所有是以Unicode編碼的,可是當你的數據用於網絡傳輸或者存儲到硬盤中,必須是以非Unicode編碼(utf-8,gbk等等)。
英文
中文
#.encode('編碼本類型')編碼 #str ---> bytes s1 = '中國' b1 = s1.encode('utf-8') #編碼 print(b1,type(b1)) #b'\xe4\xb8\xad\xe5\x9b\xbd' b1 = s1.encode('gbk') #b'\xd6\xd0\xb9\xfa' <class 'bytes'> #.decode('解碼本類型')解碼 #bytes---->str b1 = b'\xe4\xb8\xad\xe5\x9b\xbd' s2 = b1.decode('utf-8') #解碼 print(s2)
#先將gbk編碼本解碼爲Unicode,再用utf-8編碼 #gbk ---> utf-8 b1 = b'\xd6\xd0\xb9\xfa' s = b1.decode('gbk') # print(s) b2 = s.encode('utf-8') print(b2) #b'\xe4\xb8\xad\xe5\x9b\xbd'