面试
语言相关
1.解释型语言和编译型语言区别?
1.1 解释型语言:Python、JavaScript,不用对原代码编译,通过解释器,边执行边翻译成机器语言,不生成可执行程序,每次执行都要翻译一次,特点:写代码效率高,调试容易,跨平台性好
1.2 编译型语言:C、C++、汇编语言、Pascall,编译型语言需要打包和编译,程序执行前需要一个专门编译的过程,编译成机器语言,生成可执行文件,运行时候不需要重新编译,直接使用编译的结果他所编译使用的工具称为编译器,特点:执行效率高,但是调试时候麻烦
2.P2和P3区别?
2.1 print在p2中是语句,在p3中是方法
2.2 p2默认Ascii编码,p3默认utf-8编码
2.3 p2默认4个字节是一个字符,p3默认两个字节是一个字符
2.4 p2map方法返回list,p3map方法返回iteration
3.解释器的种类和特点:
3.1 CPython:C语言开发的,是使用最广的解释器,有GIL全局解释器锁
3.2 IPython:基于CPython的交互式解释器
3.3 Jython:运行在java平台上的解释器,可以直接把python的代码编译成java字节码执行
3.4 PyPy:是另一个python解释器,目标是执行速度,采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度
4.列举几个PEP8规范
4.1 类的首字母大写,函数首字母小写
4.2 变量命名不能与关键字重名,必须以数字字母下划线组成,且不能以数字开头
4.3 推荐导入多行导入,不推荐同行导入多个模块
4.4 每一级缩进使用4个空格或者一个Tab键,每行最大字符限制79个,除了长导包语句和url地址
5.常见编码有哪些
编码 | 制定时间 | 作用 | 所占字节数 |
---|---|---|---|
ASCii | 1967年 | 西欧语言 | 8bit/1bytes |
GB2312 | 1980 | 简体中文字符集,兼容ASCii | 2bytes |
Unicode | 1991 | 国籍标准组织同一标准字符集 | 2bytes |
GBK | 1995 | GB2312扩展字符集,支持繁体,兼容GB2312 | 2bytes |
UTF-8 | 1992 | 不定长编码 | 1-3bytes |
语法
1.is和==区别
is:两个实例对象是不是完全相同,内存地址是否一样
==:比较两个对象的内容是否相等
2.range和xrange区别
range如
x = range(0,5) 结果是[0,1,2,3,4] 这样的一个列表类型
xrange如
x = xrange(0, 5) 结果是range(0,5) 一个生成对象