1.为什么学习Python? 运维开发 2.通过什么途径学习的Python? 自学 and 工作中能用py实现的都用py实现 3.Python和Java、PHP、C、C#、C++等其他语言的对比? 4.简述解释型和编译型编程语言? 解释型语言是指使用专门的解释器,将源程序逐行解释成特定平台的机器代码并立即执行的语言。 编译型语言是一次性编译成机器语言的,所以可以脱离开发环境独立运行,而且通常运行效率较高。但因为编译型语言的程序被编译成特定平台上的机器码, 因此编译生成的可执行程序通常无法移植到其他平台上运行,如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至少需要采用特定平台上的编译器重新编译。 5.Python解释器种类以及特点? cpython jpython等 6.位和字节的关系? 1Byte=8bit 7.b、B、KB、MB、GB 的关系? 除前两个 别的都是1024 8.请至少列举5个 PEP8 规范(越多越好)。 9.通过代码实现如下转换: 二进制转换成十进制:v = “0b1111011” int(v,2) 十进制转换成二进制:v = 18 bin(v) 八进制转换成十进制:v = “011” int(v,8) 十进制转换成八进制:v = 30 oct(v) 十六进制转换成十进制:v = “0x12” int(v,16) 十进制转换成十六进制:v = 87 hex(v) 10.请编写一个函数实现将IP地址转换成一个整数。 如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ? 167971084 11.python递归的最大层数? sys.getrecursionlimit() 12.求结果: v1 = 1 or 3 v2 = 1 and 3 v3 = 0 and 2 and 1 v4 = 0 and 2 or 1 v5 = 0 and 2 or 1 or 4 v6 = 0 or Flase and 1 13.ascii、unicode、utf-8、gbk 区别? 14.字节码和机器码的区别? 字节码是经编译器编译后的 机器码是电脑的CPU可直接解读的数据。 15.三元运算规则以及应用场景? 16.列举 Python2和Python3的区别? 17.用一行代码实现数值交换: a = 1 b = 2 a,b = b,a 18.Python3和Python2中 int 和 long的区别? python2中有long类型 python3中没有long类型,只有int类型 19.xrange和range的区别? 分别返回生成器和列表 20.文件操作时:xreadlines和readlines的区别? 分别返回生成器和列表 21.列举布尔值为False的常见值? 为0的,空集合,空字符串,空值None 22.字符串、列表、元组、字典每个常用的5个方法? 23.lambda表达式格式以及应用场景? 24.pass的作用? 语法用的 25.*arg和**kwarg作用 不定参数 26.is和==的区别 内存地址相等和值的区别 27.简述Python的深浅拷贝以及应用场景? 深拷贝顾名思义:全部拷贝 修改不影响之后的变量 浅拷贝就是:浅浅的拷贝第一层而已 28.Python垃圾回收机制? 引用计数 内存池机制 垃圾回收 29.Python的可变类型和不可变类型? 可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。 30.求结果: v = dict.fromkeys(['k1','k2'],[]) v[‘k1’].append(666) print(v) #{'k2': [666], 'k1': [666]} v[‘k1’] = 777 print(v) #{'k2': [666], 'k1': 777} 求结果: 31.列举常见的内置函数? abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile() issubclass() print() super() bin() file() iter() property() tuple() bool() filter() len() range() type() bytearray() float() list() raw_input() unichr() callable() format() locals() reduce() unicode() chr() frozenset() long() reload() vars() classmethod() getattr() map() repr() xrange() cmp() globals() max() reverse() zip() compile() hasattr() memoryview() round() __import__() complex() hash() min() set() delattr() help() next() setattr() dict() hex() object() slice() dir() id() oct() sorted() 32.filter、map、reduce的作用? 33.一行代码实现9*9乘法表 34.如何安装第三方模块?以及用过哪些第三方模块? pip/python setup.py install 35.至少列举8个常用模块都有那些? os/sys/xml/subprocess/logging/hashlib/tab/re 36.re的match和search区别? match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果 37.什么是正则的贪婪匹配? 38.求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) ) [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] <generator object <genexpr> at 0x0000000002E6A9D8> 39.求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2 1 2 Flase True 40.def func(a,b=[]) 这种写法有什么坑? 参数不可控 41.如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ? >>> def is_num(n): ... return n.isdigit() ... >>> filter(is_num,list("1,2,3")) ['1', '2', '3'] >>> 如何实现[‘1’,’2’,’3’]变成[1,2,3] ? >>> map(lambda x:int(x),['1', '2', '3']) [1, 2, 3] >>> 42.比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别? (1,)是元组 (1)是int 43.如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ? [i**2 for i in range(1,11)] 44.一行代码实现删除列表中重复的值 ? set() 45.如何在函数中设置一个全局变量 ? globle 46.logging模块的作用?以及应用场景? 日志模块 47.请用代码简答实现stack 。 FILO 略 参考python数据结构 48.常用字符串格式化哪几种? %s 和 format的方式 49.简述 生成器、迭代器、可迭代对象 以及应用场景? 50.用Python实现一个二分查找的函数。 参考python数据结构 51.谈谈你对闭包的理解? 需要总结 52.os和sys模块的作用? 和os交互 python解释器相关的 53.如何生成一个随机数? random.randomint 54.如何使用python删除一个文件? os.remove() 55.谈谈你对面向对象的理解? 把现实的东西通过抽象、建模 实现程序模拟 56.Python面向对象中的继承有什么特点? 57.面向对象深度优先和广度优先是什么? 经典类的搜索方式:从左到右,深度优先 新式类采用广度优先搜索 58.面向对象中super的作用? 直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO) 59.是否使用过functools中的函数?其作用是什么? nerver 60.列举面向对象中带爽下划线的特殊方法,如:__new__、__init__ __new__是创建对象实例 init是对象实例初始化 __dict__ __doc__等等 61.如何判断是函数还是方法? 直接调用 通过.进行调用 62.静态方法和类方法区别? staticmethod:只是放到class中 和普通函数一样 外部函数集成到类体中,美化代码结构 classmethod: 传参cls 类和实例都可以调用它 63.列举面向对象中的特殊成员以及应用场景 64.1、2、3、4、5 能组成多少个互不相同且无重复的三位数 61 65.什么是反射?以及应用场景? 通过字符串映射object对象的方法或者属性 66.metaclass作用?以及应用场景? 类的类 67.用尽量多的方法实现单例模式。 68.装饰器的写法以及应用场景。 认证 日志等 69.异常处理写法以及如何主动跑出异常(应用场景) 70.什么是面向对象的mro Method Resoluthion Order 多重继承 71.isinstance作用以及应用场景? 72.写代码并实现: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1] 2次循环或者sorted之后两个指针 略 73.json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型? 74.json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办? 75.什么是断言?应用场景? 76.有用过with statement吗?它的好处是什么? 上下文管理器 77.使用代码实现查看列举目录下的所有文件。 os.walk() 78.简述 yield和yield from关键字。