python筆試面試題_視頻中(待完善)

1、選擇填空題

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]

 

 2、程序小題

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]

 

 

3、程序大題

相關文章
相關標籤/搜索