python基礎知識の重点面接問題

8200 ワード

1、解釈型とコンパイル型
"""
-    (     ,        ):          ,         ,    , 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、               
"""