【面试题目来着微信公众号:GitChat】
语言特性
- 谈谈对 Python 和其他语言的区别
【语言特点】简洁优雅,有很多第三方库。
【语言类型】解释型语言。
【缺点】运行速度相对较慢,解决方法:可以嵌入c、c++的代码。
【和java的对比】python是弱类型语言,java是强类型语言。
【和c++的对比】python第三方库丰富,可以用少量代码实现功能,速度相对较慢,跨平台性好。
【总结】Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门强类型的可移植,可扩展,可嵌入的解释型编程语言。 - 简述解释型和编译型编程语言
【什么是编译】把代码翻译成机器能读懂的机械语言。
【解释型语言】一边执行,一边编译,所以速度较慢,但跨平台(不依赖于操作系统,不依赖于硬件设备),兼容性好。
【编译型语言】先编译,后执行。第一次编译,之后执行不需要编译,所以速度快。
【python为什么是强类型语言】如果语言经常隐式地转换变量的类型,那这个语言就是弱类型语言,如果很少会这样做,那就是强类型语言。 - Python 的解释器种类以及相关特点?
【解释器种类】CPython,IPython,PyPy,Jython,IronPython
【CPython】官方版本解释器,c语言开发,应用广泛。
【IPython】是基于CPython之上的一个交互式解释器。交互上有所加强。
【PyPy】动态编译,显著提高执行速度。
【Jython】是运行在Java平台上的Python解释器,把python代码编译成java字节码执行。
【IronPython】是运行在微软.Net平台上的Python解释器,把Python代码编译成.Net的字节码。 - 说说你知道的Python3 和 Python2 之间的区别?
【print】print语句没有了,取而代之的是print()函数。
【unicode】Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。
现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
【除法运算】python3除法如果除数和被除数都是整数,也会得到浮点数。
【异常处理】
1. python3中使用as
2. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。
3. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。
【xrange 和 range】
1. python2中,见第6条。
2. python3中,取消了xrange()。
【数据类型】
1. Py3.X去除了long类型,现在只有一种整型int,但它的行为就像2.X版本的long。
2. 新增了bytes类型,str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。
3. 去掉了iterkeys()函数。同时去掉 dict.has_key(),可以用in替代。 - Python3 和 Python2 中 int 和 long 区别?
【python2】int是整型,long是长整型。整型根据处理器,可能是32位或64位。长整型没有限制。
【python3】只有整型int,取消了长整型long。 - xrange 和 range 的区别?
【python2和python3的区别】python3中取消了xrange()
【python2中的xrange】生成的是一个数组。
【python2中的range】生成的是一个生成器。
【python3中的range】生成一个range类型的数据,类似列表的数组,可迭代,可以切片。
要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
面试题目来着微信公众号:GitChat
Python 爬虫面试题 170 道
以上答案皆为鄙人回答,如有问题,敬请诸君指出.
【python面试170题】系列
1. 语言特性
2. 编码规范
3. 数据类型-字符串