Python day2
#bit_length() 当十进制用二进制表示时,最少使用的位数
1 ''' 2 bit_length 3 1 0000 0001 1 4 2 0000 0010 2 5 3 0000 0011 2 6 '''
# 转化规则
1 # int 转 str 无限制 2 # str 转 int 只有字符串为数字的时候可以转 3 # int 转 bool 只要是非零就是True else 为False 4 # bool 转 int True为 1 False 为 0
1 v1 = 10 2 data = v1.bit_length() 3 # show 4 4 print(data) 5 6 v = 3 7 data = v.bit_length() 8 # show 2 9 print(data)
# String 的索引
1 a = 'ABCDFGHIJK' 2 #show A 3 print(a[0])
#shou C 4 print(a[2])
#切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
# String 的索引
1 a = 'ABCDFGHIJK' 2 print(a[0]) 3 print(a[2])
# String 的切片
1 a = 'ABCDFGHIJK' 2 # 只打印到C 而不是D 3 print(a[0:3]) 4 # 从索引为2,即C开始 打印到F 5 print(a[2:5]) 6 # 默认到最后 7 print(a[0:]) 8 # -1表示字符串最后一个元素的索引,所以打印不出最后一个元素 9 print(a[0:-1]) 10 # 打印ABCDF 11 print(a[0:5:1]) 12 # 打印出ACF 13 print(a[0:5:2]) 14 # 打印出GBD #反向加步长 15 print(a[5:0:-2])
# 字符串常用方法
1 # 字符串常用方法 2 name = 'rainm' 3 # 1 captalize() 将首字母转化为大写 4 # show Rainm 5 print(name.capitalize()) 6 7 name = 'Rainm' 8 # 2 swapcase() 大小写转化 9 # show rAINM 10 print(name.swapcase()) 11 12 # 3 title() 每个单词的首字母大写 13 name = 'R a I n m' 14 print(name.title()) 15 # show R A I N M 16 name = '*R aa i N .m' 17 # show *R Aa I N .M 18 print(name.title()) 19 20 # 4 center 内容居中,总长度,空白处填空 21 name = "Ranim's English is very well." 22 # show ---------------Ranim's English is very well.---------------- 23 print(name.center(60, '-')) 24 25 # 5 count 计算字符串中的元素出现的个数 26 name = "Ra发im's English is very well." 27 num = name.count('e') 28 # show 2 29 print(num) 30 31 # 计算第0个元素到 第4个元素中m出现的次数 32 num = name.count('m', 0, 4) 33 # show 0 34 print(num) 35 36 # 6 expandtabs 37 a2 = "hqw\t" 38 #\t前面的补全 39 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。 40 ret4 = a2.expandtabs() 41 # show hqw 5个空格 42 print(ret4) 43 44 # 7 startswith 判断是否以。。。开头 返回的是bool值 45 name = "Ranim's English is very well." 46 47 result = name.startswith('Ra') 48 # show True 49 print(result) 50 51 result = name.startswith('m', 4) 52 # show True (因为元素下标为4的是m开头的) 53 print(result) 54 55 # 8 endswith 判断是否以。。。结尾 返回的是bool值 56 result = name.endswith('ni', 2, 4) 57 # show true 顾头不顾腚 58 print(result) 59 60 name = "Ranim's English is very well." 61 62 # 9 find 寻找字符串中的元素是否存在 63 result = name.find('well') 64 # 返回的找到的元素的索引,如果找不到返回-1 65 # show 24 66 print(result) 67 result = name.find('k') 68 # show -1 69 print(result) 70 71 # 10 index 查找元素下标,没找到会报错 72 result = name.find('well') 73 # show 24 74 print(result) 75 76 # 11 split 以什么分割,最终形成一个列表次列表不含有这个分割的元素 77 ret9 = 'title,Tilte,atre,'.split('t') 78 print(ret9) 79 ret91 = 'title,Tilte,atre,'.rsplit('t',1) 80 print(ret91) 81 82 # 12 strip 删去指定符号或数字 83 name = '*egon**' 84 # show egon 85 print(name.strip('*')) 86 87 name = '*egon 9**' 88 # show egon 89 print(name.strip(' *9')) 90 91 # 左删除 92 # show egon 9** 93 print(name.lstrip('*')) 94 # 右删除 95 # show *egon 9 96 print(name.rstrip('*')) 97 98 # 13 replace('要替换的','替换目标',替换次数) 99 100 name = "Ranim's English is very well Ranim ." 101 102 print(name.replace('Ranim', 'Chenyi', -1)) 103 104 name='alex say :i have one tesla,my name is alex' 105 # show SB say :i have one tesla,my name is SB (-1 表示所有) 106 print(name.replace('alex', 'SB', -1)) 107 108 # 14 109 # isalnum 字符串由字母或数字组成 110 # isalpha 字符串只由字母组成 111 # isdigit 字符串只由数字组成 112 # 返回的都是bool类型 113 name='jinxin123' 114 print(name.isalnum()) 115 print(name.isalpha()) 116 print(name.isdigit()) 117 118 # 15 format 格式化输出 119 res = '{} {} {}'.format('egon', 18, 'male') 120 # show egon 18 male 121 print(res) 122 res = '{1} {0} {1}'.format('egon', 18, 'male') 123 # show 18 egon 18 (不会显示male,因为已经规定输出输出顺序了) 124 print(res) 125 res = '{name} {age} {sex}'.format(sex='male', name='egon', age=18) 126 # show egon 18 male 127 print(res)
# 列表
# li = ['alex', [1, 2, 3], 'wusir', 'egon', '女神', 'taibai'] # l1 = li[0] # print(l1) # # l2 = li[1] # print(l2) # # # 列表切片 # l3 = li[0:3] # print(l3) # # 列表的增 # li = ['alex','wusir','egon','女神','taibai'] # # # 添加至末尾 # li.append("日天") # print(li) # # # 指定位置添加 # print(li) # # 不报错 但是显示None print(li.insert(4,"123")) # # Insert object before index. # li.insert(4, "123") # print(li) # # # extend # li.extend("132") # print(li) # li.extend([1, 2, 3]) # print(li)
# 列表的删
1 li = ['taibai','alex', "alex", 'wusir','egon','女神',] 2 # # 默认是最后一个 可以填写删除元素的索引 有返回值 返回的是删除的元素 3 # name = li.pop(1) 4 # # 按照索引删除元素 5 # li.pop(1) 6 # print(name, li) 7 8 # # 按照元素删除 删除第一次出现的元素就退出 9 # li.remove("alex") 10 # print(li) 11 # 12 # # 13 # # 清空 clear 14 # # li.clear() 15 # # print(li) 16 # # 切片删除 del 顾头不顾尾 17 # # del li[0:2] 18 # # print(li) 19 # 20 # # 改 21 # li[0] = "Rainm" 22 # print(li) 23 # 24 # # 切片改 25 # # 先删除 后将字符串中的元素逐个添加到列表中,列表中的元素也一样 26 # li[0:3] = '云姐plfdslkmgdfjglk' 27 # li[0:3] = [1, 2, 3, '春哥', '咸鱼哥'] 28 # print(li) 29 30 # 查 31 # li = ['taibai','alex','wusir','egon','女神',] 32 # for i in li: 33 # print(i) 34 # print(li[0:2]) 35 # 36 # # 公共方法 37 # print(len(li)) 38 # print(li.count("taibai")) 39 # print(li.index("taibai"))
元祖 只读列表,可循环查询,可切片
儿子不能改,孙子可能可以改
1 # tu = (1, 2, 3, 'alex', [2, 3, 4, 'taibai'], 'egon') 2 # print(tu[3]) 3 # # 顾头不顾尾 4 # print(tu[0:5]) 5 # for i in tu: 6 # print(i) 7 # tu[4][3] = tu[4][3].upper() 8 # print(tu[4]) 9 # 10 # tu[4].append("ab") 11 # print(tu[4]) 12 13 s = 'alex' 14 s1 = ''.join(s) 15 # show alex 16 print(s1) 17 s1 = '-'.join(s) 18 # show a-l-e-x 19 print(s1)
# 列表转字符串 list-> str join
1 li = ['taibai', 'alex', 'wusir', 'egon', '女神'] 2 s = '++++'.join(li) 3 print(s)
# range 的使用
# 顾头不顾尾
1 for i in range(3, 10): 2 print(i) 3 4 # 0,9 5 for i in range(10): 6 print(i) 7 # 步长为3 8 for i in range(0, 10, 3): 9 print(i) 10 # 倒叙打印 11 for i in range(10, 0, -2): 12 print(i) 13 # 10 8 6 4 2 0 14 for i in range(10,-1,-2): 15 print(i)
# 1)将列表lis中的’tt’变成大写(用两种方式)。
1 lis = [2, 3, 'k', ['qwe', 20, ['k', ['tt', 3, '1']], 89], 'ab', 'adv'] 2 # lis[3][2][1][0] = "TT" 3 # print(lis) 4 lis[3][2][1][0] = lis[3][2][1][0].upper() 5 print(lis) 6 # 2)将列表中的数字3变成字符串’100’(用两种方式)。 7 # lis[1] = "100" 8 # lis[3][2][1][1] = '100' 9 # print(lis) 10 # lis[3][2][1].remove(3) 11 # lis[3][2][1].insert(1,'100') 12 lis[1] = str(100) 13 print(lis) 14 15 # 3)将列表中的字符串’1’变成数字101(用两种方式) 16 # lis[3][2][1][2] = 101 17 # print(lis) 18 # lis[3][2][1].remove("1") 19 # lis[3][2][1].append(101) 20 # 这种情况必须添加强制转化,因为replace的参数只能是字符串 21 lis[3][2][1][2] = int(lis[3][2][1][2].replace('1', '101')) 22 print(lis)
# dict的增删改查
1 # dic = { 2 # key为字符串 'name':['大猛','小孟'], 3 # 'py9':[{'num':71,'avg_age':18,}, 4 # {'num': 71, 'avg_age': 18, }, 5 # {'num': 71, 'avg_age': 18, }, 6 # ], 7 # key为bool True:1, 8 # key为元祖 (1,2,3):'wuyiyi', 9 # key为整型 2:'二哥', 10 # } 11 12 # 增 13 dic1 = { 'age': 18, 'name': 'jin', 'sex': 'male' } 14 dic1['high'] = 185 # 不存在high的key就直接添加 15 print(dic1) 16 dic1['age'] = 16 #如果存在age键,则值覆盖 17 print(dic1) 18 19 # setdefault 20 # 有键值对,不做任何改变,没有才添加。 21 dic1.setdefault("age") 22 # 没有赋值,则默认为None 23 # dic1.setdefault('weight') 24 dic1.setdefault('weight', '110') 25 print(dic1) 26 27 # 删除 28 # pop 按键删除 有返回值 返回键对应的值 29 # print(dic1.pop('age'))
1 # 重要:未找到键的时候可以自定义返回的值 来提示该键未存在 2 # print(dic1.pop('二', "删除")) # 可设置返回值 3 4 # 重要:popitem 随机删除 但是测试后感觉只是删除最后的一个元素 有返回值 返回的是元祖 元祖里面的是删除的键和值 5 print(dic1.popitem()) 6 print(dic1) 7 8 # del 按键删除 9 del dic1['name'] 10 print(dic1) 11 # 直接删除字典,删除后打印时会报错 12 # del dic1 13 # print(dic1) 14 15 # 字典.clea() 清空字典 16 # dic1.clear() 17 # print(dic1) 18 19 # 改 update 20 dic1['age'] = 18 21 print(dic1) 22 23 # 字典.update(字典1) 将字典1的内容添加到字典里 相同的就覆盖,不同的就新建 24 # dic = {"name": "jin", "age": 18, "sex": "male"} 25 # dic2 = {"name": "alex", "weight": 75} 26 # dic2.update(dic) 27 # print(dic) 28 # print(dic2) 29 30 dic1 = {'age': 18, 'name': 'jin', 'sex': 'male'} 31 # 查 重要 keys values items 32 # print(dic1.keys(),type(dic1.keys())) 33 # print(dic1.values(),type(dic1.values())) 34 # print(dic1.items(),type(dic1.items())) 35 36 # 默认打印的是keys 37 for i in dic1: 38 print(i) 39 # 打印values 40 for i in dic1.values(): 41 print(i) 42 43 # 重要 一行代码完成两个数交换 44 # a = 1 45 # b = 2 46 # a,b = b,a 47 # print(a,b) 48 # a,b = [1,2],[2,3] 49 # a, b = b, a 50 # a,b = (1,2) 51 # print(a,b) 52 53 # 打印字典的键和值 54 for i, v in dic1.items(): 55 print(i, v) 56 57 v1 = dic1['name'] 58 print(v1) 59 60 # v2 = dic1['name1'] # 报错 61 # print(v2) 62 63 # 重要 字典.get('键', '指定返回内容(默认为None)') 64 # 如果该键存在 则直接取出,否则返回指定内容或者None 65 v2 = dic1.get("name1") 66 print(v2) 67 print(dic1.get('name1','没有这个键')) 68 69 dic = { 70 'name':['alex','wusir','taibai'], 71 'py9':{ 72 'time':'1213', 73 'learn_money':19800, 74 'addr':'CBD', 75 }, 76 'age': 21 77 } 78 # dic['age'] = 56 79 print(dic) 80 print(dic['name']) 81 dic['name'].append('ritian') 82 dic['name'][1] = dic['name'][1].upper() 83 dic['py9']['female'] = 'man' 84 print(dic) 85 86 # 重要 计算输入字符串中数字团的个数 87 # fhdklah123rfdj12fdjsl3 ' 123 12 13' 88 89 # info = input('>>>').strip() 90 # for i in info: 91 # if i.isalpha(): 92 # info = info.replace(i," ") 93 # l = info.split() 94 # print(len(l)) 95 96 # 升级版 97 s = input('<<<') 98 for i in s: 99 if not(i.isdigit()): 100 s = s.replace(i, ' ') 101 s = s.split() 102 print(len(s))