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'