Python面试题

1.range和xrange区别,xrange通过什么关键字实现的,yield语句底层是如果实现的

只有py2才有xrang,py2中range得到的是一个列表,xrange得到的是一个生成器,在py3中只有range,相当于py2中的xrange,优点是生成器可以节约内存,xrange通过关键字yield实现,yield是用底层虚拟机的栈状态切换来实现的

2.解释型语言和编译型语言的区别

编译型语言对源代码进行编译,生成可以执行的二进制代码,执行的是编译后的结果,你就可以直接运行这个编译成的“可执行文件”,解释型语言不用对源代码进行编译,一般是通过解释器载入脚本后运行。由于每个语句都是执行的时候才进行解释翻译,这样解释性语言每次执行就要翻译一次,效率相对要低。编译型语言缺点是假如需要修改模块代码就需要重新编译,如果换操作系统平台,需要根据运行的操作系统环境重新编译可执行文件,优点是执行效率高可以脱离语言环境独立运行,解释型语言优点是有良好的平台兼容性,在安装好解释器的任何环境都可以运行,灵活,修改代码时候可以直接修改就可以,可以快速部署,不用停机维护,缺点是每次运行的时候每个语句都需要解释翻译一遍,性能效率速度上不如编译型语言

3.python是怎么做到跨平台的?为什么可以跨平台?

因为python是将这些自己的指令代码,最终转换为了c语言指令集,然后在c语言的指令集再进行编译为机器码,然后运行,这也是为什么python的性能差的原因了

 

你可能感兴趣的:(Python面试题)