首页 > 编程语言 > 详细

python基础面试题

时间:2020-02-26 12:03:39      阅读:63      评论:0      收藏:0      [点我收藏+]

python面试基础篇-----1

  1. 简述列举了解的编程语言及语言间的区别
java:编译型语言 
c语言:编译型语言
python:解释型语言
编译型语言和解释型语言的区别
编译型语言
 优点:
     运行速度快,执行效率高
 缺点:
     编译时间长,需要根据操作系统环境编译不同的可执行文件
解释型语言
 优点:开发效率高,有良好的兼容性,灵活
 缺点:运行速度慢,性能上不如编译型语言
  1. Python2和python3的区别

    • Python2:源码不统一,源码有重复,python3,源码统一,源码不重复

    • Python2除法的时候返回的是整数(向下取整),python3返回的是浮点数

    • python3中的input获取的是字符串,python2中获取的是数据本身

    • Python3使用的是Unicode,Python2中使用 ASCII 码

    • python3 iter()和_iter_()都有 python2 只有 iter()

    • Python2中没有提供线程池,python3之后解释器才提供了线程池.

    • Python2: python2.2 之前都是经典类,python2.2之后出现了新式类,继承object就是新式类

      Python3: 只有新式类,不管你继不继承object都是新式类

  2. 看代码,写结果

    v1 = 1 or 2
    结果:1
    
    v2 = 3 and 7 or 9 and 0
    结果:7
    
    规则:
     and的运算,都为真才为真,有一个是假就是假
     and的运算,都为真的时候选择and后边的内容
     and的运算,都为假时选择and前边的内容
    
     or的运算,只要有一个真就是真
     or的运算,都为真时选择or前边的内容
     or的运算,都为假时选择or后边的内容
    
     非 ---不是
       not  True = False
    
    优先级:
     ()>not>and>or
  3. 比较以下值有什么不同

    v1 = [1,2,3]     列表
    v2 = [(1),(2),(3)]  列表套元组
    v3 = [(1,),(2,),(3,)] 列表嵌套元组
  4. 一行代码实现数值互换

    a = 1
    b = 2
    a,b = b,a
  5. python中单引号,双引号,三引号的区别

    单引号、双引号和三引号没区别,只是在同一个字符串中,一种引号只能用一次

    三引号还能用作多行注释

  6. is和==的区别

    is 比较两个对象的id是否相等,==是比较两边的对象是否相等

  7. python中如何实现tuple和list的转化

    a = (1,2,3,4,5)
    b = list(a)
  8. 如何实现字符串name=‘老男孩‘反转

    name = "老男孩"
    l = reversed(name)
    print(''.join(l))
    字符串切片
    l= name[::-1]
  9. 两个set如何获取交集、并集、差集

    s1 = {"刘能", "赵四", "???"}
    s2 = {"刘科?", "冯乡?", "???"}
    交集  s1&s2 两个集合中的共有元素
    并集  s1|s2 两个集合中的全部元素
    差集  s1-s2 第一个集合中单独的元素
  10. 那些情况下, y != x - (x-y)会成立?

    x,y都为真时成立

  11. Python中如何拷贝一个对象

    使用深拷贝的方式进行拷贝

  12. 简述 赋值、浅拷贝、深拷贝的区别

    赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
    浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变)
    深拷贝:创建一个新的对象,并且递归的复制它所包含的对象
  13. pass的作用

    pass是占位符,保持程序结构的完整性

  14. 看代码,写结果

    import copy
    a = [1,2,4,5,['b','c']]
    b = a
    c = copy.copy(a)浅
    d = copy.deepcopy(a) 深
    
    a.append(5) 
    [1,2,4,5,['b','c'],5]
    a[4].append('d')
    [1,2,4,5,['b','c','d'],5]
    
    print(b)  [1,2,4,5,['b','c','d'],5]
    print(c)  [1,2,4,5,['b','c']]
    print(a)  [1,2,4,5,['b','c','d'],5]
  15. 用Python实现9 * 9 乘法表

    for i in range(1,10):
        for j in range(1,i+1):
            print("%s*%s=%s"%(i,j,i*j),end=' ')  
        print(' ')
  16. 用Python显示一个斐波那契数列

    def fib(n):
      if n==1 or n==2:
        return n
      return fib(n-1) + fib(n-2)
    n = int(input())
    print('斐波那契数列第%s个是'%(n),fib(n))
  17. 如何删除列表中重复的值

    lst=list(set(list))

  18. 一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?

    with open(etl_log.txt, 'r') as f:
        for i in f:
            print(i,end=' ')
  19. a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么

    {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
  20. lambda关键字的作用?

    lambda是匿名函数,能提高代码的执行效率,增加可读性
  21. *arg**kwarg作用?

    *arg在定义函数时接受多余的位置参数,**kwarg接受多余的关键字参数
    *arg 把多余的位置参数转化为元组
    **kwarg 把多余的关键字参数转换为字典
  22. 如何在函数中设置一个全局变量

    使用global
    global  变量名
  23. filter、map、reduce的作用

    map  作用:便于对数组中的每个元素进行操作   是用同样方法把所有数据都改成别的
    
    reduce 作用:对数组中的元素进行汇总  是用某种方法依次把所有数据丢进去最后得到一个结果
    
    filter 作用:过滤 是筛选出其中满足某个条件的那些数据
  24. 什么是匿名函数?匿名函数有什么作用

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
    函数名 = lambda 参数 :返回值
    
    作用:能够简化代码,能作为参数传递,提高执行效率,节省空间
  25. Python递归的最大层数

    官方给出的结果是1000,实测在998左右
  26. 什么是迭代器?什么是可迭代对象?

    含有__iter__和__next__方法 (包含__next__方法的可迭代对象就是迭代器)
    具有__iter__方法的就是可迭代对象。
  27. 什么是生成器

    包括含有yield这个关键字,生成器也是迭代器,调动next把函数变成迭代器
  28. 什么是装饰器及应用场景

    能够在不修改原函数代码的基础上,在执行前后进行定制操作,闭包函数的一种应用
    应用场景:
        django的权限验证
        计算函数的运行次数和运行时间
        插入日志
  29. 什么是反射及应用场景

    反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员
    
    应用场景
        django中的类视图

python基础面试题

原文:https://www.cnblogs.com/python111/p/12366076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!