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))

 

posted @ 2018-09-03 20:47  Rainm  阅读(235)  评论(0编辑  收藏  举报