1、解释型和编译型编程语言的区别
解释型语言(Interpreted language)是一种编程语言。这种类型的编程语言,会将代码一句一句直接运行,不需要像编译语言一样,经过编译器先编译为机器代码,之后再运行。
这种语言需要利用解释器,在运行期,动态将代码逐句解释为机器代码,或是已经预先编译为机器代码的子程序,之后再运行。
编译型语言(Compiled language)是一种以编译器来实现的编程语言。它不像解释语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器代码,再加以运行。
一般而言,用编译语言写成的程序,在运行期的运行速度,通常比用解释型语言写的程序快。因为程序在编译期,已经被预先编译成机器代码,可以直接运行,不用像解释型语言一样,还要多一道直译程序。
2、Python解释器种类以及特点?
- CPython
- c语言开发的 使用最广的解释器
- IPython
- 基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样
- PyPy
- 目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率
- JPython
- 运行在Java上的解释器 直接把python代码编译成Java字节码执行
- IronPython
- 运行在微软 .NET 平台上的解释器,把python编译成. NET 的字节码
3、位和字节的关系
位:一个二进制数据0或1,是计算机传输的最小单元.8位组成一个字节.
字节:存储空间的计量单元,1个字节有8个bit.而1024个字节又代表1K
英文占一个字节,中文占两个字节
4、进制转换
5、python递归的最大层数?
当代码中无线循环时,Python会抛出“RuntimeError: maximum recursion depth exceeded” 的错误,解决的方法就是设置最大的循环次数;这样就可以造成无线循环的假象,如下:
import
sys
sys.setrecursionlimit(
1500
)
# set the maximum depth as 1500
def
recursion(n):
if
(n <
=
0
):
return
n
recursion(n
-
1
)
if
__name__
=
=
"__main__"
:
recursion(
1200
)
6、字节码和机器码的区别?
机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据。
字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件。字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。