1.现在有2个元组(('a'),('b'),('c'),('d')),请使用Python中的匿名函数生成列表[{'a':'c'},{'b':'d'}]?
tu = (('a'),('b'),('c'),('d'))
tu = list(map(lambda x,y:{x:y},tu[:2],tu[2:]))
print(tu)
2.看代码写出输出结果:
def multipliters():
return [lambda x:i * x for i in range(4)]
print([m(2) for m in multipliters()])
答案:[6,6,6,6]
3. 1 or 2 和 1 and 2 输出分别是什么?
1 or 2 结果 1
1 and 2 结果 2
and 如果真返回后面的
or 如果真返回第一个
4.看代码输出结果?
value = 'B' and 'A' or 'C'
print(value)
答案:A
5.看代码,写输出结果
v1 = [i%2 for i in range(10)]
v2 = (i%2 for i in range(10))
print(v1,v2)
v1 = [0,1,0,1,0,1,0,1,0,1]
v2 = <genexpr>对象,是一个生成器
6.def f(a,b=[]) 这种写法有什么陷阱?
默认参数可变,容易在后面引用的时候,读取到之前使用的值,因为列表的内存地址没有变。
7.看代码写结果
def extendlist(val,li=[]):
li.append(val)
return li
l1 = extendlist(10)
l2 = extendlist(123,[])
l3 = extendlist('a')
print(l1)
print(l2)
print(l3)
答案:[10,'a'] [123] [10,'a']
8.谁会报错
v1 = {}
v2 = {3:5}
v3 = {[1,2,3]:5}
v4 = {(1,2,3):5}
v3会报错,字典不能使用可变的数据当key。
9.输出结果
for i in range(5,0,1):
print(i)
什么也没有输出,因为步长为正,倒序需要为负数
10.使用lambda匿名函数完成以下操作
def add(x,y):
return x+y
add = lambda x,y:x+y
11.range 和 xrange 区别
2.x:range 会生成一个列表,xrange会生成一个生成器
3.x:range 会生成一个生成器,取消了xrange。
12. "1,2,3" 如何变成['1','2','3']
li = "1,2,3".split(',')
13.['1','2','3']如何变成[1,2,3]
li = ['1','2','3']
li = list(map(lambda x:int(x),li))
14 用一行代码生成[1,4,9,16,25,36,49,64,81,100]
li = list(map(lambda x: x*x,[x for x in range(11)]))
15.一行生成9*9的乘法表
print('\n'.join([''.join(['%sX%s=%s '%(y,x,x*y) for y in range(1,(x+1))]) for x in range(1,10)]))
16.map(str,[1,2,3,4,5,6,7,8,9]) 输出什么?
map对象。
如果list,会将所有元素的类型变成字符串类型
17.Django如何在Model保存前做一定的固定操作,比如写一条日志
18. 1,2,3,4,5 能注册多少个互不相同的无重复的三位数?
def count_nub(bit,data_list):
'''
返回一个列表生成bit位组成数的不重复的个数
:param bit: 数字几位
:param data_list: 数据列表
:return:
'''
max_n = len(data_list) + 1
min_n = max_n - bit
ret = 1
for i in range(min_n, max_n):
ret *= i
return ret
print(count_nub(3,[1,2,3,4,5]))
结果为:60
1.如何判断一个Python对象的类型?
type()
2.Python如何生成一个随机数?
random.range(0,n)
3.请写出匹配ip的正则表达式?
import re a = 'ds1f192.168.0.12a0.0.0.0dlkl255.201.252.255,299.23.21.33'
a2 = re.findall('(?:(?:1\d{2}\.?) | (?:2[0-4]{1}\d{1}\.?) | (?:25[0-5]{1}\.?) | (?:\d{2}\.?)){4}', a)
print(a2)
4.写尽可能多的str方法?
str.encode('utf-8') str.decode('utf-8') str.split('|',n) str.rsplit('|',n)
str.replise(old,new) str.join(iter) str.startswith('a') str.endwith('s')
5.全局变量和局部变量的区别,如何在function里面给全局变量赋值?
作用域不同,全局变量所有地方都可以调用,局部变量只有在自己作用局中才可以使用。
在局部作用域改变全局变量需要使用global
6.tuple和list区别,有2个list,b1=[1,2,3],b2=[2,3,4],写出合并代码。
元组创建后不可以修改,列表可以修改,Python中列表和元组可以随意强制转换。
最简单:b1.extend(b2)
b1 = [1, 2, 3]
b2 = [2, 3, 4]
for i in b2:
b1.append(i)
print(b1)
7.请写出一段Python代码实现删除一个list里面重复的元素,l=[1,1,2,3,4,4,5,6,6]
l=[1,1,2,3,4,4,5,6,6]
l = list(set(l))
print(l)
8.写出如下list的交集和差集代码,b1=[1,2,3],b2=[2,3,4]?
交集:print(list(set(b1) & set(b2)))
差集:print(list(set(b1) ^ set(b2)))
9.写一段Python代码实现list排序,a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
10.D=[x * x for x in range(1,10)],请写出D的结果。
[1, 4, 9, 16, 25, 36, 49, 64, 81]
11.如何用Python输出一个Fibonacci 数列,100以内
def fbn(k1,k2,n):
if n == 100:
return k1 else:
k3 = k1 + k2
ret = fbn(k2,k3,n+1)
return ret
ret = fbn(0,1,1)
print(ret)#34
12.什么是lambda函数?下面代码输出是什么?
nums = range(2,20)
for i in nums:
nums = filter(lambda x: x == i or x % i,nums)
print(list(nums))
匿名函数
结果:[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]