上课时刷基础题所得笔记

filter(function, iterable)

filter函数是python中的高阶函数, 第一个参数是一个筛选函数, 第二个参数是一个可迭代对象, 返回的是一个生成器类型, 可以通过next获取值. 这里大致讲述下原理, filter()把传入的function依次作用于iterable的每个元素, 满足条件的返回true, 不满足条件的返回false, 通过true还是false决定将该元素丢弃还是保留.

集合

集合并不能对其下标进行访问,,集合的操作有并集|,交集&等操作。

嵌套列表乘法

嵌套列表乘法得到的值都是引用,所以下方对b的一项进行改变,后面嵌套乘法的也会相应的改变

b = [['1','2']]*2
b[0][0] = '4'
print(b) # # [['4', '2'], ['4', '2']]

字典(可变不可变类型)

字典不可变类型比较特殊,在进行值替换时,原始字典与复制过来的字典之间互补影响。

突然弄不清楚上面的话了

这里的复制替换是可以更改了,并不会影响
若字典的值为不可变类型则不会改变。
对了潜复制是改变子元素对象才会跟着改变的

kvps = { '1' : 1, '2' : 2 }
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print(sum) # 6

但是添加删除时不会互相影响。
列表复制之后添加,删除,替换都会互相影响

python的内存池机制:

分为大内存和小内存,大内存使用malloc进行分配,小内存使用内存池进行分配。(256K为界限分大小内存))
Python的内存池分为5层,最上层,用户对Python对象的直接操作,第2和第1层内存池,第0层:大内存使用malloc进行分配,若请求分配的内存在1-256之间,则直接分配
第-1,-2层:操作系统进行分配

协程进程线程

协程:是一种用户态的轻量及线程,线程是协程的资源,
多线程和多进程,以及应用场景
多线程可以进行线程间的切换。
多进程的切换比较复杂

进程通信方式

管道:半双工通信,数据只能单向流动
命名管道FIFO:半双工通信,允许无亲缘关系进程间的通信
消息队列:
共享存储
信号量
套接字
信号

什么是死锁,死锁的条件

如何预防死锁,!避免死锁,死锁发生的检查
死锁:多个进程因争夺资源而造成的一种僵局,多个进程都无法获取资源
1.互斥条件
2.请求和保持条件
3.不剥夺条件
4.环路等待条件

堆和栈的区别以及存储模式有什么区别

堆可以被看作一颗树的数组对象,堆是基于完全二叉树的
栈的特点是先进后出,出栈入栈都是从栈顶

数据库隔离等级

多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。
1.读未提交
2.读已提交
3.可重复读
4.串行化

索引的数据结构是什么

mysql索引的数据结构是树,常用的存储引擎innodb采用的是B+Tree

web攻击,CSRF攻击

跨站点请求伪造,利用用户已经登录了网站,以用户身份在攻击页面对目标网站发起伪造用户操作。

嵌入式笔记

串口通信:串口按位(bit)发送和接收字节。
并行:在操作系统中,若干个程序段同时在系统中运行
串行:将组成字符的各位串行地发往线路。
(1)同步传输:同步传输方式中发送方和接收方的时钟是统一的
(2)异步传输:异步传输方式并不要求发送方和接收方的时钟完全一样
通信手段:
半双工:同一时刻一方发送数据另一方只能接收数据
单工:同一时刻,往同一方向传播
双工:通信双方同一时刻都能发送和接收数据

努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
原文地址:https://www.cnblogs.com/wkhzwmr/p/15763784.html