zoukankan      html  css  js  c++  java
  • python面试题(完)

    45 json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?

     

    47 isinstance作用以及应用场景?

    isinstance作用:来判断一个对象是否是一个已知的类型;

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

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

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

          MRO列表的制作原则:

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

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

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

    expect:
       print("456")



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

    实例方法,类方法,静态方法都可以通过实例或者类调用,只不过实例方法通过类调用时需要传递实例的引用

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

    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. 应用场景

      1. 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 

      1634002179170.png

    55 单例模式(类的一个实例)
    a.py
    class AdminSite(object):
           pass
       obj1 = AdminSite() #创建一个实例(单例)
       
       
    b.py
    #调用实例
    import a
       a.obj1
       a.obj1
       a.obj1
       a.obj1
    #不管调用多少次,始终只执行同一个实例
    56 一行代码实现99乘法表
    print ('
    '.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 1、2、3、4、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
  • 相关阅读:
    WPF MVVM模式开发实现简明教程 1 开篇简介
    ArcGIS Runtime WPF(.net C#)开发简明教程 1 -初识 & 第一个项目
    WPF MVVM模式开发简明实现教程 8 完结 附全部代码
    WPF MVVM模式开发简明实现教程 7 DevExpress MVVM
    WPF MVVM模式开发简明实现教程 6 其他绑定
    WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定
    WPF MVVM模式开发实现简明教程 4 ViewModelBase
    WPF MVVM模式开发实现简明教程 3-1 BaseCommand
    WPF MVVM模式开发简明实现教程 3 事件绑定
    WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged
  • 原文地址:https://www.cnblogs.com/xxks/p/15488683.html
Copyright © 2011-2022 走看看