python面试题(完)

2021年11月22日 阅读数:6
这篇文章主要向大家介绍python面试题(完),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
45 json序列化时,能够处理的数据类型有哪些?如何定制支持datetime类型?

 

47 isinstance做用以及应用场景?

isinstance做用:来判断一个对象是不是一个已知的类型;python

其第一个参数(object)为对象,第二个参数为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(真 假)。web

若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中的名称相同即返回True。面试

48 什么是面向对象的mro
Method Realtion Order 用来制做一个继承关系的列表

      MRO列表的制做原则:

              一、子类永远在父类的前面

              二、若是继承了多个父类,那么按照()中的顺序在列表中摆放

              三、若是多个类同时继承了一个父类,孙子类中只会选取第一个父类中的父类的该方法
49 异常处理写法以及如何主动跑出异常(应用场景)
try:
   print("123")

expect:
   print("456")



     经过raise 异常对象主动抛出异常```    
50 静态方法和类方法区别

实例方法,类方法,静态方法均可以经过实例或者类调用,只不过实例方法经过类调用时须要传递实例的引用express

三种方法从不一样层次上来对方法进行了描述:实例方法针对的是实例,类方法针对的是类,他们均可以继承和从新定义,而静态方法则不能继承,能够认为是全局函数。django

51装饰器的写法以及应用场景。
  1. 在不改变原函数的代码的基础上,在执行先后进行定制操做编程

  2. def wapper(func):
    def inner(*args,**kwargs):
    return func(*args,**kwargs)
       return inner

    @wapper
    def index(s):
    return s+100
    print(index(10))
  3. 应用场景json

    1. flask路由flask

    2. django csrf设计模式

    3. django缓存数组

    4. django内置认证

52 re的match和search区别?
  1. search:在整个字符中匹配,若是找不到匹配的就返回``None
    match:在字符串开始位置匹配若是不匹配就返回None
    效率上match要高于search,不论是消耗时间仍是内存占比search都要大于match
53 filter、map、reduce的做用?
  1. map是用一样方法把全部数据都改为别的..字面意思是映 射..好比把列表的每一个数都换成其平方..

  2. ** reduce是用某种方法依次把全部数据丢进去最后获得一个结果..字面意思是化简..好比计算一个列表全部数的和的过程,就是维持一 个部分和而后依次把每一个数加进去..**

  3. filter是筛选出其中知足某个条件的那些数据..字面意思是过滤..**好比挑出列表中全部奇数**..

  4. >>> map(lambda x:x*x,[0,1,2,3,4,5,6])
    [0, 1, 4, 9, 16, 25, 36]
    >>> reduce(lambda x,y:x+y,[0,1,2,3,4,5,6])
    21
    >>> filter(lambda x:x&1,[0,1,2,3,4,5,6])
    [1, 3, 5]
54 列举常见的内置函数?
  1. 1 bool

      2 int

      3 float

      4 complex 复数

    5 bin  整型转换为二进制

      6 oct  整型转换为八进制

      7 hex  整型转换为十六进制

      8 abs  求绝对值

      9 divmod  (除,余数)

      10 round (值,小数后几位)

    12 sum  

      13 max

      14 min

      15 list

      16 tuple

      17 reversed 

    python面试题(完)_应用场景

55 单例模式(类的一个实例)
a.py
class AdminSite(object):
       pass
   obj1 = AdminSite() #建立一个实例(单例)
   
   
b.py
#调用实例
import a
   a.obj1
   a.obj1
   a.obj1
   a.obj1
#无论调用多少次,始终只执行同一个实例
56 一行代码实现99乘法表
print ('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
57 三元运算规则以及应用场景?
  1. 三元运算符就是在赋值变量的时候,能够直接加判断,而后赋值

  2. 三元运算符的功能与'if....else'流程语句一致,它在一行中书写,代码很是精炼,执行效率更高
    [on_true] if [expression] else [on_false]

        res = 值1 if 条件 else 值2
58.字节码和机器码的区别?
  1. 机器码是电脑CPU直接读取运行的机器指令,运行速度最快,难编写

  2. 字节码是一种中间状态(中间码)的二进制代码(文件)。须要直译器转译后才能成为机器码

59 实现单例模式

1.Python 的模块就是自然的单例模式,由于模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。

2。装饰器使用装饰器来调用call方法。

  1. 先执行了类的new方法(咱们没写时,默认调用object.new),实例化对象;而后再执行类的init方法,对这个对象进行初始化,全部咱们能够基于这个,实现单例模式。

 

60 metaclass做用?以及应用场景?

默认类由type建立,经过metaclass能够指定当前类是由哪个type建立。

1.默认类由type实例化建立 2.某个类指定metaclass=Mytype,那么当前类的全部派生类都由Mytype建立 3.实例化对象

61 什么是反射?以及应用场景?

getattr

它的核心本质其实就是利用字符串的形式去对象(模块)中操做(查找/获取/删除/添加)成员,一种基于字符串的事件驱动!

python的四个重要内置函数:getattrhasattrdelattrsetattr较为全面的实现了基于字符串的反射机制。他们都是对内存内的模块进行操做,并不会对源文件进行修改。

其实,在上面的例子中,围绕的核心主题是如何利用字符串驱动不一样的事件,好比导入模块、调用函数等等,这些都是python的反射机制,是一种编程方法、设计模式的体现,凝聚了高内聚、松耦合的编程思想,不能简单的用执行字符串来代替。固然,exec和eval也有它的舞台,在web框架里也常常被使用。

62 一、二、三、四、5 能组成多少个互不相同且无重复的三位数
count=0  #计数
numss=[] #初始化
for i in range(1,6): #百位循环
  for j in range(1,6):#十位循环
      for x in range(1,6):#个位循环
          if (i!=j) and (i!=x) and(j!=x): #判断不重复的三个数
              num=100*i+10*j+x
              count+=1 #累加
              if num not in numss:
                  numss.append(num) #添加到数组
              print(count,numss)
63 是否使用过functools中的函数?其做用是什么

 functools用于高阶函数:指那些做用于函数或者返回其余函数的函数。一般状况下,只要是能够被当作函数调用的对象就是这个模块的目标

64 面向对象中super的做用?

 super() 函数是用于调用父类(超类)的一个方法。   super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,可是若是使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

65, 列举布尔值为False的常见值?

(),[],{},0

 

66,[Python3和Python2中int和long的区别?]

Python3:Python3中int类型的范围是动态长度的,正整数或者负整数

Python2:Python2中long类型的范围是无限大小.

 

我的小站,欢迎访问!http://klvr.xyz
上一篇: zookeeper面试题
下一篇: 面试题12