1.python——多线程,多进程,协程
- 概念
(1)进程:是系统进行资源分配和调度的基本单位。
(2)线程:一个进程包含多个线程,进程执行程序时的最小单位。
(3)协程:又称微线程,一个程序可以包含多个协程,协程是一个单线程。 - 区别
(1)进程切换需要很大的资源,效率低
(2)线程执行开销小,但不利于资源的管理和保护
(3)协程操作CPU的上下文,资源小,效率高
(4)线程不能独立执行,必须存在于进程中
(5)一个程序至少有一个进程,一个进成至少一个线程
(6)进程拥有独立的内存单元
(7)线程共享数据
2.字典中get()和[key]的区别?
- get()方法当key不存在的时候不会抛出异常
- [key]当key不存在时,会抛出异常
3.讲一下python中的异常机制
- try…执行代码…except…异常代码…
- try…finally…
- try…执行代码…except…异常代码…else…没有异常时执行的代码
(1)try中正常执行,else中也执行(2)try不执行,else不执行 - try…执行代码…except…异常代码…else…没有异常时执行的代码…finally
(1)不论前面3个怎么样,finanlly语句都会执行 - raise 抛出异常
4.说一说遇到的异常类型?
- ZeroDivisionError: 1/0
- NameError:访问的变量名不存在
- TypeError:类型错误
- AttributeError:属性错误
- SyntaxError:语法错误
- KeyError:字典的键不存在
- IndexError:索引错误
- IndentationError:缩进错误
- StopIteration:迭代器没有更多的值
- Exception:常见的错误基类
- ZeroDivisionError:取模异常
- AssertionError:断言异常
- IOError:输入/输出异常基类
- ImportError:导入模块异常
- TabError:Tab和空格混用异常
- UnicodeError:Unicode异常
5.python中__new__和__init__的区别?
- __new__创建实例,在类实例被创建前调用,返回类的实例,第一个参数是cls,类级别的方法
- __init__实例对象创建完成后被调用,用来设置对象的一些初始值,没有返回值,第一个参数是self,实例级别的方法。
- __new__先被调用,__init__后被调用,__new__的返回值传递给__init__方法的第一个参数。
6.python中的可变和不可变数据结构?
- 不可变:tuple,字符串,number
- 可变:list,dict,set
7.python中的三目运算符
- 为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)
- x if x>3 else y
8.说一说X86和ARM系统的理解?转载:https://www.cnblogs.com/dashumeizi/p/4526371.html
- ARM处理器:定位于嵌入式平台,应付轻量级、目的单一明确的程序,应用在移动设备。
- ARM处理器基于精简指令集(RISC)架构,指令集数量少就可以简化硬件逻辑的设计,减少晶体管数量。
- ARM是为了低功耗,主板不会发热,主板温度一般是常温,开机速度非常快。
- x86定位于桌面和服务器,应用与计算密集型的系统,比如多媒体编辑、科研计算、模拟等等。
- x86是复杂指令集(CISC)架构,存在很多机器指令,只为了高效地完成一项专门任务(比如MMX, SSE中的指令)
- X86是为了高性能,主板CPU必须配风扇而且不能长期工作,否则主板产生的温度会让主板整体性能寿命降低。X86需要开机一段时间。