1. 到底什么是 Python?你可以在回答中与其他技术进行对比
下面是一些关键点:
Python 是一种解释型语言。这就是说,与 C 语言和 C 的衍生语言不同,Python 代码在运行
之前不需要编译。其他解释型语言还包括 PHP 和 Ruby。
Python 是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编
写类似 x=111 和 x="I'm a string"这样的代码,程序不会报错。
Python 非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承
(inheritance)的方式定义类(class)。
Python 中没有访问说明符(access specifier,类似 C++中的 public 和 private),
这么设计的依据是“大家都是成年人了”。
在 Python 语言中,函数是第一类对象(first-class objects)。这指的是它们可以被指定给变
量,函数既能返回函数类型,也可以接受函数作为输入。类(class)也是第一类对象。
Python 代码编写快,但是运行速度比编译语言通常要慢。好在 Python 允许加入基于 C 语言
编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。
numpy 就是一个很好地例子,它的运行速度真的非常快,因为很多算术运算其实并不
是通过 Python 实现的。
Python 用途非常广泛——网络应用,自动化,科学建模,大数据应用,等等。它也常被用
作“胶水语言”,帮助其他语言和组件改善运行状况。
Python 让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设计,而不用处
理底层的细节。
为什么提这个问题:如果你应聘的是一个 Python 开发岗位,你就应该知道这是门什
么样的语言,以及它为什么这么酷。以及它哪里不好。
2.什么是 PEP8?
PEP8 是一个编程规范,内容是一些关于如何让你的程序更具可读性的建议。
3.什么是 pickling 和 unpickling?
Pickle 模块读入任何 Python 对象,将它们转换成字符串,然后使用 dump 函数将其转储到一
个文件中——这个过程叫做 pickling。
反之从存储的字符串文件中提取原始 Python 对象的过程,叫做 unpickling。
4.Python 是如何被解释的?
Python 是一种解释性语言,它的源代码可以直接运行。Python 解释器会将源代码转换成中
间语言,之后再翻译成机器码再执行。
5.Python 是怎样管理内存的?
Python 的内存管理是由私有 heap 空间管理的。所有的 Python 对象和数据结构都在一个私
有 heap 中。程序员没有访问该 heap 的权限,只有解释器才能对它进行操作。
为 Python 的 heap 空间分配内存是由 Python 的内存管理模块进行的,其核心 API 会提供一
些访问该模块的方法供程序员使用。
Python 有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序