python总结二
1.在命令行:dd是删除光标所在的那一整行
yy是复制光标所在的那一整行
p是将已复制的数据在光标的下一行粘贴
P是将已复制的数据在光标的上一行粘贴
2.在命令行中查找的话
从上往下查找:/
从下往上:?
针对/,使用‘n’查找下一个,使用‘N’查找上一个
3.进程之间的通信方式:
消息队列
本地socket通信方式
管道通信
共享内存
信号量
命名管道虽然可以通讯,但是把变量的地址传递过去是没有用的,因为不同的进程的地址空间是独立的,谁也不能访问谁,只有传值才可以,传地址是不行的
子进程虽然是父进程fork()出来的,但是任然属于两个进程,不同进程之间也是独立的,子进程无权访问父进程的变量
进程A读取B进程中的某个变量(非共享内存),可行的方式有()
正确答案: A B
B进程向消息队列写入一个包含变量内容的消息,A进程从队列中读出
通过本地环路通信
如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程
如果 B是A 进程的子进程,那么B直接读取变量内容即可
4.
以下函数中,和其他函数不属于一类的是____。
正确答案: E
read
pread
write
pwrite
fseek
lseek
lseek()函数,移动文件的读写位置
read() write()读写文件
pread() pwrite()带偏移量的读写文件,都属于系统调用
fseek()库函数
5.
在RHEL5系统中使用vi编辑文件时,要将某文本文件第1行到5行的内容复制到文件中的指定位置,以下( )操作能实现该功能。(选择二项)
正确答案: B D
将光标移到第1行,在vi命令模式下输入yy5,然后将光标移到制定位置,按p键
将光标移到第1行,在vi命令模式下输入5yy,然后将光标移到制定位置,按p键
使用末行命令1,5yy,然后将光标移到制定位置,按p键
使用末行命令1,5y,然后将光标移到制定位置,按p键
6.
下面的内存管理模式中,会产生外零头的是()
正确答案: B D
页式
段式
请求页式
请求段式
7.
堆排序,快速排序,希尔排序,直接选择排序都不是稳定的排序算法,而基基数排序,冒泡排序,直接插入排序,折半插入排序,归并排序都是稳定的算法
归并的时间复杂度是n log n
冒泡排序算法速度最快,每次排序记录下最后的一次交换的位置
8.
外排序和内排序不只是考虑内外排序算法的性能,还要考虑io数据交换效率的问题,内存存取速度远远高于外存
9.
单例是一种设计模式,应用该模式只会生成一个实例
单例模式保证了程序的不同位置都可以且仅可以获取到同一个对象实例,如果实例不存在的话,则会创建一个实例出来
如果已经存在则会返回这个实例。因为单例是一个类,所以你也可以为其提供相对应的操作,以便于对这个实例进行管理
单例对象:使用new来实现
class B(): _cls=0 def __new__(self, *args, **kwargs):##在init执行之前 if self._cls==None: self._cls=object.__new__(self) return self._cls sin1=B() sin2=B() print(id(sin1),id(sin2)) print(id(sin1)==id(sin2))
使用metaclass来实现:
##metaclass class A(type): _in=0 def __call__(cls, *args, **kwargs): if cls._in==None: cls._in=object.__new__(cls) return cls._in class B(metaclass=A): pass sin1=B() sin2=B() print(id(sin1),id(sin2)) print(id(sin1)==id(sin2))