zoukankan      html  css  js  c++  java
  • 新面试题

    新面试题

    1、一行代码实现1--100之和

    # 利用sum()函数求和
    sum(range(1, 101))
    

    img

    2、如何在一个函数内部修改全局变量

    # 利用global在函数声明 修改全局变量
    a = 5
    def func():
      	global a
        a = 10
    
    func()
    print(a)  # 结果: 10
    

    3、列出5个python标准库

    '''
    os:提供了不少与操作系统相关联的函数
    
    sys: 通常用于命令行参数
    
    re: 正则匹配
    
    math: 数学运算
    
    datetime:处理日期时间
    '''
    

    4、字典如何删除键和合并两个字典

    del和update方法

    img

    5、谈下python的GIL

    		GIL是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
    
    		多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
    

    6、python实现列表去重的方法

    # 先通过集合去重,在转列表
    list1 = [11, 12, 10, 13, 14, 11, 12]
    set1 = set(list1)
    print(set1)  # [10, 13, 14, 11, 12]
    
    list1 = list(list1)
    

    7、fun(*args,*kwargs)中的*args,*kwargs什么意思?

    # *args: 可以接收任意个形参
    # **kwargs: 可以接收任意个关键字参数
    

    8、python2和python3的range(100)的区别

    # python2返回列表,python3返回迭代器,节约内存
    

    9、一句话解释什么样的语言能够用装饰器?

    # 函数可以作为参数传递的语言,可以使用装饰器
    

    10、python内建数据类型有哪些

    '''
    整型--int
    
    布尔型--bool
    
    字符串--str
    
    列表--list
    
    元组--tuple
    
    字典--dict
    '''
    

    11、简述面向对象中__new__和__init__区别**

    '''
    __init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数。
    
    1、__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别
    
    2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例,或者直接是object的__new__出来的实例
    
    3、__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值
    
    4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。
    '''
    

    12、简述with方法打开处理文件帮我我们做了什么?

    '''
    		打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close
    		(当然还有其他自定义功能,有兴趣可以研究with方法源码)
    '''
    

    13、列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]

    map()# 函数第一个参数是fun,第二个参数是一般是list,第三个参数可以写list,也可以不写,根据需求
    

    14、python中生成随机整数、随机小数、0--1之间小数方法

    '''
    随机整数:random.randint(a,b),生成区间内的整数
    
    随机小数:习惯用numpy库,利用np.random.randn(5)生成5个随机小数
    
    0-1随机小数:random.random(),括号中不传参
    '''
    

    15、避免转义给字符串加哪个字母表示原始字符串?

    r , 表示需要原始字符串,不转义特殊字符

  • 相关阅读:
    Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
    Spring NoSuchBeanDefinitionException六大原因总结
    深入分析Spring 与 Spring MVC容器
    MyBatis mapper parameterType
    eclipse下的mybatis插件:MyBatipse
    javax.servlet-api 和 servlet-api 区别
    Spring中ClassPathXmlApplication与FileSystemXmlApplicationContext的区别
    dump总结
    操作系统基础知识
    JMM中的Happens-Before原则
  • 原文地址:https://www.cnblogs.com/ghylpb/p/12684464.html
Copyright © 2011-2022 走看看