Python面试题

快大四了,断断续续看了python也有半年了,尝试着做一下武sir发的Python面试题【315+】

https://www.cnblogs.com/wupeiqi/p/9078770.html

通过网络上的一些答案跟自己的学习及实际情况进行回答,如果有错误请多指正。

第一部分 Python基础

  1. 为什么学习python?    我的大学专业是偏数据挖掘的,偶然间接触到python,python在科学计算上的功能十分强大,并且爬虫的实现相对容易,近年来十分火热,很多行业对python的需求再增多。
  2. 通过什么途径学习的Python? 主要是自学,书如《Python核心编程第3版》,看了网络课程,去GitHub看项目。
  3. Python和Java、PHP、C、C#、C++等其他语言的对比? 
  4. 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候再编译,效率较低;编译型语言在执行前已经编译过一次,运行时不再编译,因此效率较高。
  5. Python解释器种类以及特点? https://www.cnblogs.com/jackzz/p/9080288.html
  6. 位和字节的关系? 位是计算机内部数据存储的最小单位,1字节相当于8位。
  7. b、B、KB、MB、GB 的关系? 1GB=1024MB,1MB=1024KB,1KB=1024B,1B=8b。
  8. 请至少列举5个 PEP8 规范(越多越好)。 缩进4个空格,import库分开,不要将多个语言写在同一行,操作符左右各加一个空格,命名尽量短小。http://blog.sae.sina.com.cn/archives/4781
  9. 通过代码实现如下转换:

    二进制转换成十进制:v = “0b1111011”
   print(int("0b1111011",2))    123
    十进制转换成二进制:v = 18
   print(bin(18))   0b10010
    八进制转换成十进制:v = “011”
  print(int("011",8))   9
    十进制转换成八进制:v = 30
  print(oct(30))   0o36
    十六进制转换成十进制:v = “0x12”
  print(int("0x12",16))   18
    十进制转换成十六进制:v = 87  print(hex(87))   0x57

  10. 请编写一个函数实现将IP地址转换成一个整数。

    如 10.3.9.12 转换规则为:
            10            00001010
    
         3            00000011

             9            00001001
    
        12            00001100

    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
    IP = "10.3.9.12"
    
    def addr2dec(addr):
        "将点分十进制IP地址转换成十进制整数"
        items = [int(x) for x in addr.split(".")]
        # return sum([items[i] << [24, 16, 8, 0][i] for i in range(4)])
        return sum([items[i]*2**[24,16,8,0][i] for i in range(4)])
    
    print(addr2dec(IP))
    167971084
    View Code

     

  11. python递归的最大层数? python默认应该是900多,但是可以通过
    import sys
    sys.setrecursionlimit(100000)
    

      更改

  12. 求结果:
        v1 = 1 or 3
     1,or是从左到右计算表达式,返回第一个为真的值。
        v2 = 1 and 3
      3,and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。
        v3 = 0 and 2 and 1     0
    
    v4 = 0 and 2 or 1      1
    
    v5 = 0 and 2 or 1 or 4       1
    
    v6 = 0 or Flase and 1    Flase    
  13. ascii、unicode、utf-8、gbk 区别?
  14. 字节码和机器码的区别?
  15. 三元运算规则以及应用场景?
  16. 列举 Python2和Python3的区别? 对于中文字符的支持。
  17. 用一行代码实现数值交换:
         
 a = 1
     
     b = 2     
    a, b = b, a
    

     

  18. Python3和Python2中 int 和 long的区别?

  19. xrange和range的区别? 在python2中,xrange返回一个生成器对象,range返回一个列表对象。python合并了,range返回生成器对象。
  20. 文件操作时:xreadlines和readlines的区别?同上一题
  21. 列举布尔值为False的常见值?
  22. 字符串、列表、元组、字典每个常用的5个方法?
  23. lambda表达式格式以及应用场景?
    lambda 多个参数:表达式
    

     节约命名空间,或是简单的函数,在def无法使用的地方,快速速写函数。

  24. pass的作用?保持结构完整性,占位。
  25. *arg和**kwarg作用? 传入一个或多个参数。
  26. is和==的区别?is比较的是d(地址),==比较的是value(值),数值型和字符串型的情况下,is和==结果一样,俩个对象值一样时都为True,其他如tuple,list,dict或set型时,is和==不一样。
  27. 简述Python的深浅拷贝以及应用场景?
  28. Python垃圾回收机制?
posted @ 2018-06-09 16:39  沙漠bus  阅读(230)  评论(0)    收藏  举报