python全面复习;

  1 Python面试题
  2 5月27日
  3 1、一个列表如何去重复且保证原有顺序不变?
  4 (l = [8,6,4,9,4,1,5,4,6,5,1,2,5,22])
  5 Part1:
  6 l1 = [8,6,4,9,4,1,5,4,6,5,1,2,5,22]
  7 l2 = []
  8 for line in l1:
  9 If line not in l2:
 10 L2.append(line)
 11 Print(l2)
 12 Part2:
 13 l1 = [8,6,4,9,4,1,5,4,6,5,1,2,5,22]
 14 l2 = list(set(l1))
 15 # 用set去重复,再转换回列表(没有得到原来顺序),将上一
 16 # 得到的列表排序,按照l1中的顺序排序;
 17 l2.sort(key=l1.index)  
 18 2、按照列表里面的字典内的年龄进行排序?
 19 Part1:
 20 l3 = [
 21 {‘name’:’k1’,’age’:18},{‘name’:’k1’,’age’:15},
 22 {‘name’:’k1’,’age’:19},{‘name’:’k1’,’age’:28}
 23 ]
 24 5月28日
 25 # 根据字典age的依据传值函数返回年龄排序
 26 def emp(x):
 27 return x[‘age’]
 28 l3.sort(key=emp)
 29 
 30 part2:
 31 # 使用lambda表达式
 32 # lambda是遍历了l3里面的字典,然后去age的值排序
 33 l3.sort(key=lambda k:k[‘age’])
 34  
 35 5月29日
 36 3、求下列打印的结果
 37 Part1:
 38 def exetend_list(v,li=[]):
 39     li.append(v)
 40     return li
 41 
 42 list1 = exetend_list(10)
 43 
 44 list2 = exetend_list(123,[])
 45 
 46 list3 = exetend_list('a')
 47 
 48 # 代码执行的时候从上到下,已经把 10,'a' 加入li列表里面
 49 print(list1) #[10,’a’]
 50 
 51 # 把参数123 放进一个新的list列表里面的了
 52 print(list2) #[123]
 53 
 54 #与list1一样都是放进同一个li里面
 55 print(list3) #[10,’a’]
 56 #因为他们都是在同一个列表里面,所以id都一样
 57 print(list1 is list3)
 58 Part2:心理抗压能力题,做题必须对自己充满自信
 59  
 60 # 以下代码的输出结果是什么?(考你对自己能力是否认可! 61 
 62 # 心理抗压能力
 63 
 64 l1 = ['a','b','c','d','f','g']
 65 
 66 print(l1[10:])
 67  
 68 Part3:如何打乱一个有序列表
 69 li = [11,22,33,44,55]
 70 # 导入random模块
 71 import random
 72 # 利用random模块里面的shuffle方法进行随机排序
 73 random.shuffle(li)
 74 
 75 print(li)
 76 
 77 li.sort()
 78 
 79 print(li)
 80  
 81 Part4:直接赋值、拷贝、深度拷贝、切片赋值
 82 Test1:
 83 list5 = [11, 22, [33, [44, 55]]]
 84 
 85 list6 = list5
 86 
 87 # copy一个列表
 88 print(list6)
 89 
 90 list5[2][1][0] = 444
 91 
 92 # 因为是在list5开辟的内存空间中修改[33,[44,55]]所以id不会变
 93 print(list6)
 94 
 95 print(id(list6),id(list5))
 96  
 97 Test2:
 98 # 把值':'切分copy到list7一个新的list空间里面
 99 list7 = list5[:]
100 
101 print(list7)
102 
103 list5[2][1][0] = 444
104 
105 # 把修改后的然后赋值到新的内存空间里
106 print(list7)
107 
108 # 所以list5与list7的内存地址不一样
109 print(id(list7), id(list5))
110  
111 5月30日
112 """
113 问:执行完下面的代码后,  l,m的内容分别是什么?
114 """
115 
116 
117 def func(m):
118     for k,v in m.items():
119         m[k+2] = v+2
120 
121 
122 m = {1: 2, 3: 4}
123 l = m  # 浅拷贝
124 l[9] = 10
125 #func(l)
126 m[7] = 8
127 
128 
129 print("l:", l)
130 print("m:", m)
131 3.6版本会报错,因为在迭代的过程中不可以修改key和value;
132 2.7不会报错;
133  
134 5月31日
135 %  与   format的区别?
136 1. 简单的一个就用%,两个或者多个就用format:
137 2. 举个例子:%一般格式化的都是一个元组
138 像两个或者多个的话会让你增加错误;
139 #敌人坐标
140 c = (255,255)
141 
142 # 利用%进行格式化:
143 # print("向她开炮: %s" %c)
144 print("向她开炮: %s" %(c,))
145 
146 # 用format进行字符串的格式化
147 print("向他开炮:{}".format(c))
148  
149 6月1号
150 """
151 生成如下列表:
152 [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
153 """
154 part1.
155 list1 = []
156 for i in range(4):
157 list2 = []
158 for j in range(5):
159 list2.append(i*j)
160 list1.append(lsit2)
161 print(list1)
162 
163 part2.
164 res = [[i*j for j in range(5)] for i in range(4) ]
165 print(res)
166 
167 
168 6月4号
169 每次调用f的时候,在打印“2018-06-04”之前打印一句 开始,之后打印一句结束;
170 
171 from functools import wraps
172 
173 def auth(func):
174 @wraps(func)
175 def wrapper(*args,**kwargs):
176 print('start ---kermit很帅')
177 func(*args,**kwargs)
178 print('end ---kermit很帅')
179 return wrapper
180 @auth
181 def f():
182 '''
183 注释
184 '''
185 print('2018-06-04')
186 f()
187 
188 
189 6月5号
190 """
191 1. os和sys都是干什么的?
192 2. 你工作中都用过哪些内置模块?
193 3. 有没有用过functools模块?
194 """
195 # 1. os和sys都是干什么的?
196 # os是系统相关的,sys是与系统交互的;
197 import os
198 base_dir = os.path.abspath(__file__)  # 取当前文件的绝对路径
199 base_dir = os.path.dirname(os.path.abspath(__file__))  # 获取当前文件的父目录赴京
200 path = os.path.join(base_dir,'abc')  # 在当前父目录下拼接一下abc的文件夹路径
201 path = base_dir + "\\abc"  # 不推荐使用硬编码的形式拼接路径
202 
203 import sys
204 sys.path.append()  # 向当前运行的环境变量中添加一个指定的路径
205 
206 if __name__ == '__main__':
207     print(sys.argv)  # 获取cmd中的命令,返回来的是一个列表
208     print(sys.argv[1])
209     print(sys.argv[2])
210 
211 
212 # 2. 你工作中都用过哪些内置模块?
213 # re,json,hashlib,time,datetime,socket,thread,functools
214 
215 from functools import partial
216 def f(a,b):
217     return a + b
218  
 

面试题

 

猜你喜欢

转载自www.cnblogs.com/kermitjam/p/9138065.html