bytes和str之间的转化编码与解码
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)
a = ‘ABCDEFGHIJK‘ print(a[0:3]) print(a[2:5]) print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长
字符串常用方法。
s1 = ‘dasdfasasd‘
print(s1.capitalize()) #首字母大写 print(s1.swapcase()) #大小写翻转 s2 =‘egon say hi‘ print(s2.title()) #每个单词的首字母大写
内容居中,总长度,空白处填充 a1 = ‘123‘
a2 = a1.center(20,"*") print(a2)
数字符串中的元素出现的个数。 ret3 = a1.count("a",0,4) # 可切片 print(ret3)
a2 = "hqw\t" #\t前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。 ret4 = a2.expandtabs() print(ret4) a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 ret4 = a4.endswith(‘jdk‘,3,6) # 顾头不顾腚 print(ret4) # 返回的是布尔值 ret5 = a4.startswith("kfj",1,4) print(ret5) #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = ‘title,Tilte,atre,‘.split(‘t‘) # print(ret9) # ret91 = ‘title,Tilte,atre,‘.rsplit(‘t‘,1) # print(ret91) #format的三种玩法 格式化输出 res=‘{} {} {}‘.format(‘egon‘,18,‘male‘) res=‘{1} {0} {1}‘.format(‘egon‘,18,‘male‘) res=‘{name} {age} {sex}‘.format(sex=‘male‘,name=‘egon‘,age=18) #strip name=‘*egon**‘ print(name.strip(‘*‘)) print(name.lstrip(‘*‘)) print(name.rstrip(‘*‘)) #replace name=‘alex say :i have one tesla,my name is alex‘ print(name.replace(‘alex‘,‘SB‘,1)) #####is系列 name=‘jinxin123‘ print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
针对逻辑运算的进一步研究:
1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
列表
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:
li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
增:
a = [1,‘a‘,‘b‘,2,3,‘a‘] # a.insert(0,55) #按照索引去增加 # print(a) # # a.append(‘aaa‘) #增加到最后 # a.append([1,2,3]) #增加到最后 # print(a) # # a.extend([‘q,a,w‘]) #迭代的去增 # a.extend([‘q,a,w‘,‘aaa‘]) # a.extend(‘a‘) # a.extend(‘abc‘) # a.extend(‘a,b,c‘) # print(a)
删:
# a = li.pop(1) #按照位置去删除,有返回值 # print(a) # del a[1:3] #按照位置去删除,也可切片删除没有返回值。 # print(a) # a.remove(‘a‘) #按照元素去删除 # print(a) # a.clear() #清空列表
改:
# a = [1,‘a‘,‘b‘,2,3,‘a‘] # a[1] = ‘dfasdfas‘ # print(a) # a[1:3] = [‘a‘,‘b‘] # print(a)
查:
用切片或者for循环遍历
字典
增:
# dic[‘a‘] = ["a","b","c"]
# print(dic)
# setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
# dic.setdefault(‘k‘,‘v‘)
# print(dic) # {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘, ‘k‘: ‘v‘}
# dic.setdefault(‘k‘,‘v1‘) # {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘, ‘k‘: ‘v‘}
# print(dic)
删:
# dic_pop = dic.pop("a",‘无key默认返回值‘) # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值 # print(dic_pop) # del dic["name"] # 没有返回值。 # print(dic) # dic_pop1 = dic.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回 # print(dic_pop1) # (‘name‘,‘jin‘) # dic_clear = dic.clear() # 清空字典 # print(dic,dic_clear) # {} None
改:
# dic = {"name":"jin","age":18,"sex":"male"} # dic2 = {"name":"alex","weight":75} # dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 # print(dic2)
查:
# value1 = dic["name"] # 没有会报错 # print(value1) # # value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值 # print(value2)