一.语言相关
1.1 解释型语言和编译型语言
解释型语言: Python, JavaScript, PHP, Shell, MATLAB等
编译型语言: C, C++, Golang, Pascal(Delphi)等
1.2 解释型语言和编译型语言的区别
解释型语言:
1) 解释型语言不对源代码进行编译, 通过解释器一边执行一边转换, 需要哪些源代码就转换哪些源代码, 不生成可执行程序.
2) 这种语言称为**解释型语言**, 使用的转换工具称为**解释器**.
3) 但是过于依赖解释器, 解释器本身就是一个虚拟环境, 运行前要申请内存, 开辟空间启动解释器, 过于消耗内存, 影响效率
编译型语言:
1) 编译型语言写完后需要进行打包和编译, 这会导致编写代码的过程见效慢, 但是打包之后就省事了, 以后可以直接使用,. 也就是说编译后的使用非常方便, 不像解释型语言, 虽然代码见效快, 但是执行起来慢悠悠.
2) 编译语言要求必须提前将所有源代码一次性转换为**二进制指令**, 生成一个可执行程序. 比如像C这样的编程语言就是**编译型语言**, 它所使用的工具就是**编译器**. 也就是经常在Linux下安装时需要的GCC或者G++
1.3 解释型语言和编译型都有什么特点
解释型语言特点:
写代码效率高, 调BUG比较轻松, 跨平台性好, 但是执行效率不行
编译型语言特点:
执行效率高, 但是调BUG麻烦
1.4 什么是二进制指令
二进制指令也就是机器码, 是CPU能够识别的硬件层面的代码, 简陋的硬件(古老的单击片)只能使用几十个指令, 强大的硬件(pc, 智能手机)能使用成百上千的指令
1.5 P2和P3的区别
- P2: print为语句 P3: print为方法
- P2: 默认为Ascii编码 P3:默认为Unicode(utf-8)
- P2: 除法结果为整数 P3: 除法结果为浮点数
- P2: 默认四个字节表示一个字符 P3: 默认两个字节为一个字符
- P2: map方法返回List P3: map方法返回iteration
1.6 列举几个解释器种类及特点
- CPython: C语言开发的, 是使用最广的解释器, 具有GIL全局解释锁
- IPython: 基于CPython的交互式解释器, 功能与CPython无异
- Jython: 是运行在Java平台上的Python解释器, 可以把Python的代码编译成Java字节码执行, 但CPython没有垃圾回收机制
- IronPython: IronPython和JPython类似, 只不过IronPython是运行在微软.Net平台上的Python解释器, 可以直接把Python代码编译成.Net字节码
- PyPy: 另一个Python解释器, 目标是执行效率采用JIT技术, 对Python代码进行动态编译, 提高执行效率
1.7 列举几个PEP8规范
- RFC(Request For Comments) : 专门用来定义网络请求的标准文档, 是一系列以编号排定的文件, 文件收集了有关互联网相关信息.
- PEP8
- 每一级缩进使用四个空格, 每行最大字符限制为97个, 除了长导包语句和url地址
- 导入通常再分开的行, 不推荐同行导入多个模块
- 不能使用单字符(IIO)作为变量名, 因为太像1和0
- 类的首字母大写, 函数的首字母小写