码迷,mamicode.com
首页 > 编程语言 > 详细

Python开发【第二章】:补充

时间:2018-03-12 18:49:05      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:默认   数据类型   make   SM   函数   swap   sap   找不到   元组   

一.字符串方法讲解:

  1 #---------字符串各种方法----------
  2 s = "Hello world!"
  3 
  4 #1.swapcase():大小写互换
  5 print(s.swapcase())
  6 #输出:hELLO WORLD!
  7 
  8 #2.capitalize():返回第一个字符为大写,其他字符为小写
  9 #源码:
 10 ‘‘‘
 11 Return a capitalized version of S, i.e. make the first character
 12         have upper case and the rest lower case.
 13 ‘‘‘
 14 print(s.capitalize())
 15 #输出:Hello world!
 16 
 17 #3.casefold():返回所有字符为小写
 18 #源码:
 19 ‘‘‘
 20 Return a version of S suitable for caseless comparisons.
 21 ‘‘‘
 22 print(s.casefold())
 23 #输出:hello world!
 24 
 25 #4.center():参数为一个数字和一个字符,在这个数字为长度的范围内,字符串居中,两边由那个字符补足
 26 print(s.center(50,#))
 27 #输出:###################Hello world!###################
 28 
 29 #5.count():统计字符串中某个字符的个数,也可以从一个范围开始
 30 #如:print(s.count(‘o‘,0,5))  输出为1
 31 print(s.count(o))
 32 #输出:2
 33 
 34 #6.endswith():判断字符串以什么结尾
 35 print(s.endswith(d!))
 36 #输出:True
 37 
 38 #7.expandtabs():扩展tab键
 39 s2 = a\tb    #\t就是tab键
 40 print(s2.expandtabs())
 41 #输出:a       b    #tab键默认8个空格
 42 print(s2.expandtabs(20))   #tab键可以指定空格
 43 #输出:a                   b
 44 
 45 #8.find():返回字符在字符串中的位置,没有则返回-1;也可以从一个范围开始
 46 #如:print(s.find(‘o‘,0,3))  输出:-1
 47 print(s.find(o))
 48 #输出:4
 49 print(s.find(sdaf))
 50 #输出:-1
 51 
 52 #9.format():字符串格式化输出
 53 #方法一:
 54 s3 = my name is {0},i am {1} years old
 55 print(s3.format(Mm,18))
 56 #输出:my name is Mm,i am 18 years old
 57 
 58 #方法二:
 59 s4 = my name is {name},i am {age} years old
 60 print(s4.format(name = Mm,age = 18))
 61 #输出:my name is Mm,i am 18 years old
 62 
 63 #10.isalnum():是否为阿拉伯数字或字符
 64 print(22.isalnum())
 65 #输出:True
 66 
 67 #11.isalpha():是否为字符
 68 print(mm.isalpha())
 69 #输出:True
 70 
 71 #12.isdecimal():是否是个数字
 72 
 73 #13.isdigit():是否是个数字
 74 
 75 #14.isidentifier():是否是个合法的变量名
 76 
 77 #15.islower():是否都是小写
 78 
 79 #16.isnumeric():是否都是数字
 80 
 81 #17.isprintable():是否是可打印的(文本文件或者是字节型文件)
 82 
 83 #18.issapce():判断是否是空格
 84 print( .isspace())
 85 #输出:True
 86 
 87 #19.istitle():判断是不是标题
 88 
 89 #20.isupper():判断是不是都是大写
 90 
 91 #21.join():列表元素以一种方式,如下例中的‘*‘连接成字符串
 92 names = [mm,mumu,tt]
 93 print(*.join(names))
 94 #输出:mm*mumu*tt
 95 
 96 #22.ljust():右填充
 97 print(s.ljust(50,*))
 98 #输出:Hello world!**************************************
 99 
100 #23.rjust():左填充
101 print(s.rjust(50,#))
102 #输出:######################################Hello world!
103 
104 #24.lower():将字符串改成小写
105 print(s.lower())
106 #输出:hello world!
107 
108 #25.upper():将字符串改成大写
109 print(s.upper())
110 #输出:HELLO WORLD!
111 
112 #26.strip():去掉空格或换行
113 
114 #27.lstrip():只去掉左边空格或换行
115 
116 #28.rstrip():只去掉右边空格或换行
117 
118 #29.maketrans():生成对应表
119 #30.translate():翻译
120 str_in = abcdef
121 str_out = !@#$%^
122 
123 table = str.maketrans(str_in,str_out)
124 
125 print(table)
126 #输出:{97: 33, 98: 64, 99: 35, 100: 36, 101: 37, 102: 94}
127 
128 print(s.translate(table))
129 #输出:H%llo worl$!
130 
131 #31.partition():一个字符串以其中的字符分割成三段
132 print(s.partition(o))
133 #输出:(‘Hell‘, ‘o‘, ‘ world!‘)
134 
135 #32.rpartition():一个字符串以其中的字符分割成三段,从右边开始寻找
136 print(s.rpartition(o))
137 #输出:(‘Hello w‘, ‘o‘, ‘rld!‘)
138 
139 #33.replace():替换,不指定一个数字将全部换掉
140 print(s.replace(o,*,1))
141 #输出:Hell* world!
142 
143 #34.rfind():从右边开始找,找不到的时候为-1
144 print(s.rfind(l))
145 #输出:9
146 
147 #34.rindex():从右边找,当找不到的时候报错
148 
149 #35.split(): 默认以空格来分割字符串为列表
150 print(s.split())
151 #输出:[‘Hello‘, ‘world!‘]
152 
153 #36.rsplit():从右边开始分
154 #如:
155 print(s.split(o,1))
156 print(s.rsplit(o,1))
157 #输出:
158 # [‘Hell‘, ‘ world!‘]
159 # [‘Hello w‘, ‘rld!‘]
160 
161 #37.splitlines():按行来分
162 t = a\nb\nmm\nc
163 print(t.splitlines())
164 #输出:[‘a‘, ‘b‘, ‘mm‘, ‘c‘]
165 
166 #38.startswith():判断以什么开始
167 print(s.startswith(He))
168 #输出:True
169 
170 #39.zfill():字符串变成一个长度的,不够用0填充
171 print(s.zfill(40))
172 #输出:0000000000000000000000000000Hello world!

 

二.元组类型:

  (1)特性:
     1.不可变
     2.元组本身不可变,如果元组中包含其他可变元素,这些可变元素可以改变

 

  (2)功能:
     1.index
     2.count
     3.切片

 

  (3)使用场景:
     1.显示的告知别人,此处数据不可修改
     2.数据库连接配置信息等

 

三.hash函数:

  (1)定义:将任意长度的消息压缩到某一固定长度的消息摘要的函数

 

  (2)特征:     hash值的计算过程是依据这个值的一些特征计算的,这就是要求hash的值必须固定,因此被hash的值必须是不可变的。

 

  (3)用途:
     1.文件签名
     2.md5加密
     3.密码验证

 

四.字典类型:

  (1)特性:
     1.key-value结构
     2.key必须可hash,且必须为不可变数据类型,必须唯一
     3.可存放任意多个值,可修改,可以不唯一
     4.无序
     5.查找速度快(key转换成hash数字,然后排序,通过二分法来查找,最多2的多少次幂,但是hash不是这种方法,但是更快)

  (2)方法:

 

 1 info = {
 2     stu001:mm,
 3     stu002:tt,
 4     stu003:mumu
 5 }
 6 
 7 方法:
 8 #1.clear():清空字典
 9 
10 #2.copy():类似于列表的深浅copy
11 
12 #3.values():
13 print(info.values())
14 #输出:dict_values([‘mm‘, ‘tt‘, ‘mumu‘])
15 
16 #4.keys():
17 print(info.keys())
18 #输出:dict_keys([‘stu001‘, ‘stu002‘, ‘stu003‘])
19 
20 #5.items():
21 print(info.items())
22 #输出:dict_items([(‘stu001‘, ‘mm‘), (‘stu002‘, ‘tt‘), (‘stu003‘, ‘mumu‘)])
23 
24 #6.updates():两个字典组合起来,当有相同的key时,更新的value会替换掉原有的value
25 dic1 = {1:2,2:3,stu003:[mumu,small dog]}
26 info.update(dic1)
27 print(info)
28 #输出:{‘stu001‘: ‘mm‘, ‘stu002‘: ‘tt‘, ‘stu003‘: [‘mumu‘, ‘small dog‘], 1: 2, 2: 3}
29 
30 #7.setdefault():输入的key如果字典中有,则不更新,如果没有,则创建
31 info.setdefault(test,new)
32 
33 #8.fromkeys():批量创造字典元素
34 
35 #9.循环:
36 for k in info:
37      print(k,info[k])
38 #输出:
39 # stu001 mm
40 # stu002 tt
41 # stu003 [‘mumu‘, ‘small dog‘]
42 # 1 2
43 # 2 3
44 # test new
45 
46 for k,v in info.items():  #相对低效,有一个字典转换成列表的过程
47     print(k,v)
48 #输出:
49 # stu001 mm
50 # stu002 tt
51 # stu003 [‘mumu‘, ‘small dog‘]
52 # 1 2
53 # 2 3
54 # test new

 

 

(3)习题:

  1 #写代码,有如下字典,按照要求实现每一个功能:dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘k3‘:‘v3‘}
  2 
  3 #1.请循环遍历出所有的 key
  4 dic = {k1:v1,k2:v2,k3:v3}
  5 for k in dic:
  6     print(k)
  7 # k1
  8 # k2
  9 # k3
 10 
 11 #2.请循环遍历出所有的 value
 12 for k in dic:
 13     print(dic[k])
 14 # v1
 15 # v2
 16 # v3
 17 
 18 #3.请循环遍历出所有的 key 和 value
 19 for k in dic:
 20     print(k,dic[k])
 21 # k1 v1
 22 # k2 v2
 23 # k3 v3
 24 
 25 #4.请在字典中添加一个键值对,‘k4‘:‘v4‘,输出添加后的字典
 26 dic[k4] = v4
 27 print(dic)
 28 #输出:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘, ‘k4‘: ‘v4‘}
 29 
 30 #5.请删除字典中键值对 ‘k1‘:‘v1‘,并输出删除后的字典
 31 dic.pop(k1)
 32 #或者
 33 #del dic[‘k1‘]
 34 print(dic)
 35 
 36 #输出:{‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘, ‘k4‘: ‘v4‘}
 37 
 38 #6.请删除字典中的键‘k5‘对应的键值对,如果字典中不存在键‘k5‘,则不报错,并且让其返回 None
 39 
 40 # for k in dic:
 41 #     if dic.get(‘k5‘):
 42 #         dic.pop(‘k5‘)
 43 #         print(dic)
 44 #     else:
 45 #         print(dic.get(‘k5‘))
 46 # # None
 47 # # None
 48 # # None
 49 # #返回3个none,在检查考虑一下
 50 
 51 if dic.get(k5):
 52     dic.pop(k5)
 53     print(dic)
 54 else:
 55     print(dic.get(k5))
 56 #输出:None
 57 
 58 #7.请获取字典中‘k2‘对应的值
 59 print(dic[k2])
 60 #输出:v2
 61 
 62 #8.请获取字典中‘k6‘对应的值,如果键‘k6‘不存在,则不报错,并且让其返回 None
 63 print(dic.get(k6))
 64 #输出:None
 65 
 66 #9.现有 dic2 = {‘k1‘:‘v111‘,‘a‘:‘b‘}通过一行操作使 dic2 = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘k3‘:‘v3‘,‘a‘:‘b‘}
 67 dic2 = {k1:v111,a:b}
 68 dic2.update({k1:v1,k2:v2,k3:v3})
 69 print(dic2)
 70 #输出:{‘k1‘: ‘v1‘, ‘a‘: ‘b‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘}
 71 
 72 #10.组合嵌套题,学代码,有如下列表,按照要求实现每一个功能
 73 lis = [[k,[qwe,20,{k1:[tt,3,1]},89],ab]]
 74 #a.将列表lis中的‘tt‘变成大写(用两种方式)
 75 # lis[0][1][2].get(‘k1‘)[0] = ‘TT‘
 76 # print(lis)
 77 # #输出:[[‘k‘, [‘qwe‘, 20, {‘k1‘: [‘TT‘, 3, ‘1‘]}, 89], ‘ab‘]]
 78 print(lis[0][1][2].get(k1)[0].upper())
 79 print(lis[0][1][2].get(k1)[0].swapcase())
 80 # TT
 81 # TT
 82 
 83 #b.将列表中的数字 3 变成字符串 ‘100‘(用两种方式)
 84 lis[0][1][2].get(k1)[1] = 100
 85 print(lis)
 86 #输出:[[‘k‘, [‘qwe‘, 20, {‘k1‘: [‘tt‘, ‘100‘, ‘1‘]}, 89], ‘ab‘]]
 87 
 88 dic3 = {k1: [tt, 100, 1]}
 89 lis[0][1][2].update(dic3)
 90 print(lis)
 91 #输出:[[‘k‘, [‘qwe‘, 20, {‘k1‘: [‘tt‘, ‘100‘, ‘1‘]}, 89], ‘ab‘]]
 92 
 93 #c.将列表中的字符串‘1‘变成数字101(用两种方式)
 94 lis[0][1][2].get(k1)[2] = 101
 95 print(lis)
 96 #输出:[[‘k‘, [‘qwe‘, 20, {‘k1‘: [‘tt‘, ‘100‘, 101]}, 89], ‘ab‘]]
 97 
 98 dic4 = {k1: [tt, 100, 101]}
 99 lis[0][1][2].update(dic4)
100 print(lis)
101 #输出:[[‘k‘, [‘qwe‘, 20, {‘k1‘: [‘tt‘, ‘100‘, 101]}, 89], ‘ab‘]]
102 
103 #11 按照要求实现以下功能:
104 
105 #现有一个列表li = [1,2,3,‘a‘,‘b‘,4,‘c‘],有一个字典(此字典是动态生成的,你并不知道他里面有多少键值对,所以
106 
107 #用dic = {}模拟此字典);现在需要完成这样的操作:如果该字典没有‘k1‘这个键,那就创建‘k1‘键和其对应的值(该键对应的值设置为空列表)
108 
109 #并将列表li 中的 索引为奇数的对应元素,添加到‘k1‘这个键对应的空列表中。如果该字典有‘k1‘这个键,且‘k1‘对应的value
110 
111 #是列表类型,那就将li中的索引为奇数的对应元素,添加到‘k1‘这个键对应的键中
112 
113 li = [1,2,3,a,b,4,c]
114 
115 dic = {}
116 
117 if not k1 in dic:
118     dic[k1] = []
119     for i in li:
120         if li.index(i) %2 == 1:
121             dic[k1].append(i)
122 else:
123     if type(dic[k1]) == type([]):
124         for i in li:
125             if li.index(i) %2 == 1:
126                 dic[k1].append(i)
127     print("字典k1,value不是列表,无法追加!")
128 
129 print(dic)

 

Python开发【第二章】:补充

标签:默认   数据类型   make   SM   函数   swap   sap   找不到   元组   

原文地址:https://www.cnblogs.com/mumupa0824/p/8550471.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!