python基礎知識の重点面接問題
8200 ワード
1、解釈型とコンパイル型
リストのsort方法で
"""
- ( , ): , , , C,C++ ,
- ( , ): , , , , , python,JAVA ,
"""
2、python 2とpython 3の違い(重点)"""
1、python2 long,python3 int
2、python3 input str , python2
3、python2 str 8 bit ,python3 Unicode
4、python2 ascll,python3 utf-8
5、python2 nonlocal,python3 nonlocal
"""
3、文字列の反転を実現する(重点)"""
name=' '
name[::-1]
"""
4、ファイル操作時:xreadlinesとreadlineの違い?重点)"""
readlines() , list, ,
xreadlines() iter , python2.3 , for
"""
5、isと==の違い?重点)"""
is id(id )
== ( id )
"""
6、dict={'a':24,'g':52,'i':12,k':33',辞書のvalue値で並べ替え(重点)"""
sorted(dict.items(), key=lambda x:x[1])
"""
7、可変タイプとは何ですか?()"""
, (int、float), ,
: , ,
"""
8、list 1の要素をageに従って大きく並べ替えてください(ポイント)"""
list1 = [{'name':'a','age':20}, {'name':'b','age':30}, {'name':'c','age':25}]
sorted(list1,key=lambda x:x['age'],reverse=True) # reverse false
"""
9、下のコードの出力結果は何ですか?(重点)"""
list = ['a', 'b', 'c', 'd', 'e']
print(list[10:]) # []
print(list[10]) # IndexError
'''
[], IndexError 。
, index
。 , list[10] , IndexError。
'''
"""
10、リスト生成式を書き、公差11の等差数列を生成する(重点)"""
print([x*11 for x in range(10)])
"""
11、二つのリストを与えて、同じ要素と異なる要素を探し出しますか?"""
1. list1 = [1,2,3]
2. list2 = [3,4,5]
3. set1 = set(list1)
4. set2 = set(list2)
5. print(set1&set2) # print(set1.intersection(set2))
6. print(set1^set2) # print(set1.difference(set2))
"""
12、pythonコードを書いてlistを実現してください。(重点)"""
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
"""
元の順序を維持したいならリストのsort方法で
"""
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print(l2)
"""
13、以下のこのコードの出力結果は何ですか?説明してください重点)"""
def extendlist(val, list=[]):
list.append(val)
return list
list1 = extendlist(10)
list2 = extendlist(123, []
list3 = extendlist('a')
print("list1 = %s" %list1)
print("list2 = %s" %list2)
print("list3 = %s" %list3) #
# :
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']
"""
14、「This」、「is」、「a」、「Boy」、「!」とリストがあります。すべての要素は文字列で、彼に対して大文字小文字と無関係な並べ替えを行います。"""
l1 = ['This','is','a','Boy','!']
print(sorted(l1))
"""
15、文字列を列挙して、リスト、元祖、字典のそれぞれの常用する5つの方法か?"""
:strip, split, len, index, replace,join,upper,lower...
:append, pop,insert, extend, remove,sort,count...
:index,count, len, dir,in,
:get,keys,values, pop, items,update,popitem,setdefault
"""
16、反射は何ですか?及び反射の応用シーン?重点)"""
-hasattr:
-getattr:
-setattr:
-delattr:
:
, django , flask
"""
17、pythonの濃淡コピー?重点)"""
copy(): copy,
deepcopy(): copy,
"""
18、pythonゴミ回収メカニズム(GC)(重点)"""
1)
,
,
0 , ,
: , :
: , , ,
2)
, : ,GC , :
: , , , 。 , ,
: , , , 。 , ,
:
: , ,
3)
“ ”, , ,
"""
19、*argsと*kwargs"""
*args ,
**kwargs ,
"""
20、enumerateの役割(重点)"""
enumerate , , , ,
"""
21、リスト導出式(重点)"""
[i for i in range(10)] [] ,
(i for i in range(10)) () , , list
"""
22、filter、map、reduceの役割(重点)"""
filter(func, iterable) : fun, 。
filter(lambda x: x>3, [1,2,3,4,5,6])
>>>
map(func, *iterable) : func iterable 。 map(lambda a,b: a+b,
map(lambda a,b: a+b, [1,2,3,4], [5,6,7])
>>> [6,8,10]
reduce(): 。
reduce(lambda x, y: x+y, [1,2,3,4,5]) # lambda
>>> 15
map:
map( , ) ---> map
map , map ,
map / 。( )
: 。
reduce:
reduce( , , 0)
reduce( , , )
filter:
filter( , ) --> filter
"""
23、閉包とは何ですか?重点)"""
, , , inner
def outer():
num = 1
def inner():
print(num) # num num
return inner # , , , , (inner), , , num
func = outer() # func == inner func inner , func , func, func,
num=1000
func() # :1
"""
24、関数が呼び出される頻度を制限する飾り器を書いてください。10秒に一回(ポイント)"""
import time
def time_wrapper(func):
def inner(*args, **kwargs):
for line in range(10):
print(line+1)
time.sleep(1)
res = func(*args,**kwargs)
return res
return inner
@time_wrapper
def func1():
print('from func1...')
func1()
"""
25、ジェネレータのサブジェネレータの違い(重要)"""
: yield , , , , ,
: , ;
: python __iter__
: ,
__next__,__iter__, ,
:
:
:
:
: ,
"""
26、以下の関数をpythonのlamda匿名関数に変換してください。"""
def add(x,y):
return x+y
# :
print(lambda x,y: x+y)
"""
27、ログ加装器(考察待ち)"""
"""
28、クローズドに対する理解を話してください。"""
。 ,
:
-
-
-
"""
29、python関数が呼び出された時のパラメータ伝達は値伝達ですか?それとも引用伝達ですか?"""
:
:
:
"""
30、なぜ関数名がパラメータとして使えるのですか?"""
python , ,
"""
31、再帰関数の停止条件"""
1、
2、
"""