python笔试面试题_视频中(待完善)

一、选择填空题

1. 用一行代码交换a,b的值

a,b = 1,2
print(a,b)
a,b = b,a
print(a,b)

2. 元祖中有一个元素,有逗号则类型是元祖,无逗号则是远数据类型

tu1 = (1)
print(tu1,type(tu1))    #1 <class 'int'>
tu2 = (1,)
print(tu2,type(tu2)) #(1,) <class 'tuple'>
tu3 = ([1]) 
print(tu3,type(tu3)) #[1] <class 'list'>
tu4 = ([1],)
print(tu4,type(tu4)) #([1],) <class 'tuple'>

 3. 列表去重(先转换成集合--集合自动去重--再转换回列表)

li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
print(set1) #{1, 2, 33, 4, 5, 6}
li = list(set1)
print(li)   #[1, 2, 33, 4, 5, 6]

 

 二、程序小题

1. 如下代码的运行结果是什么?

for i in range(0,10,-1):
    print(i)  

运行结果:成功运行,不输出任何结果,不报错

2. 匿名函数——面试题1:print(x)的结果是:24

d =lambda  p:p*2
t =lambda  p:p*3
x = 2
x = d(x)    #4
x = t(x)    #12
x = d(x)    #24
print(x)    #24

3. 匿名函数——面试题2:现有两个元祖(('a'),('b')),(('c'),('d')),请使用Python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

  解析:和匿名函数配合使用的内置函数:min max filter map sorted

print(list(map(lambda tup:{tup[0]:tup[1]},zip((('a'),('b')),(('c'),('d'))))))
# 上面一行代码等于下面三行,可以实现本题功能
ret = zip((('a'),('b')),(('c'),('d')))
res = map(lambda tup:{tup[0]:tup[1]},ret)
print(list(res))    #数据类型强转可以代替循环打印

4. 匿名函数——面试题3:下面代码的输出是什么(答案:[6, 6, 6, 6]),请修改multipliers的定义来产生期望的结果

def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])    #[6, 6, 6, 6]

# 请修改multipliers的定义来产生期望的结果 def multipliers(): return (lambda x:i*x for i in range(4)) print([m(2) for m in multipliers()]) #[0, 2, 4, 6]

 

 

三、程序大题

 

posted @ 2018-09-12 09:06  xc_718  阅读(350)  评论(0编辑  收藏  举报