一、python基础知识
1、re.match和re.search
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到第一个匹配。
2、is和= =的区别:
id相同,判断a就是b对象
= =判断a对象的值是否和b对象的值相等,是通过value判断的。
3、python的自省
是指面向对象的语言所写的程序在运行时,所能知道对象的类型。就是指在运行时能够获得对象的类型。比如type/dir/getattr()/hasattr()/isinstance
4、python装饰器
python装饰器,本身是一个python函数。它可以额外增加一个函数的功能,装饰器返回值也是一个函数对象,它经常用于有切面需求的场景。比如:插入日志、性能测试、事务处理、缓存、权限校验等。
5、函数的作用域以及查找顺序:
legb的顺序:
local :函数内部作用域。
enclosing:函数内部与内嵌函数之间
globle:全局作用域
build-in:内置作用域
6、python 中dict的实现方式(哈希)?怎么处理冲突?
python中,字典是通过哈希表实现的。也就是说,字典是一个数组,而数组的索引是键经过哈希函数处理得到的。哈希函数的目的是使键均匀地分布在数组中。
冲突的解决方法:
1)、开发地址法:
它是一种探测手段处理冲突的方法。当索引已被占用时,需要探寻一个当前未被使用的索引。常见的开放地址思想的方法有有线性探测再散列,二次探测再散列。
2)、链地址法:
将所有关键字哈希值相同的记录都存在同一线性链表中,这样不需要占用其他的哈希地址,相同的哈希值在一个链表里,按顺序遍历就可以得到。
7、提升爬虫效率的方式:
1)、多线程(多进程、协程)
2)、分布式
3)、提高网络性能
4)、提高机器性能
8、常用的协程库:
gevent、asyncio asyhttp
9、简单介绍下模拟登陆。
二、数据库
1、索引优缺点:
优点:
(1)、加快查询速度
(2)、加速表与表之间的连接。在实现数据的参考完整性方法具有特别的意义。
缺点:
(1)、增加物理空间
(2)、对表中的数据进行增加、删除、修改的时候,索引也要进行动态的维护
2、事务的性质:acid
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
3、事务隔离的四个级别
事务隔离性的四个级别:
未提交读、已提交读、可重复读、可串行化
Read uncommitted(未提交读):读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。(脏读)
Read committed:读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。(可以解决脏读问题,但是不可重复读出现了一个事务范围内两个相同的查询却返回了不同数据,这就是不可重复读。)
Repeatable read:事务开启,不允许其他事务的UPDATE修改操作。不可重复读对应的是修改,即UPDATE操作。但是可能还会有幻读问题。因为幻读问题对应的是插入INSERT操作,而不是UPDATE操作。
Serializable 序列化:Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , Oracle。Mysql的默认隔离级别是Repeatable read。
4、mysql锁有几种,死锁是怎么产生的?
MySQL有三种锁的级别:页级、表级、行级。
使用mysql数据库,在并发加锁的时候不注意,如锁A和锁B,出现锁A等待锁B,锁B又等待锁A的情况,这个时候会引发死锁。
三、linux基础知识
1、基本命令
ls:显示文件和目录
cd:切换目录
touch:创建空文件
echo:创建带有内容的文件
cat:查看文件内容
cp;拷贝
mv:移动或重命名
rm:删除文件:-r递归 -f:强制删除
find:在文件系统中搜索
wc:统计文本中行数、字数、字符数
grep:在文本文件中查找某个字符串
rmdir:删除空目录
tree:显示目录的树形结构
pwd:显示当前目录
ln:创建连接文件
more/less:分页显示文本文件内容
head/tail:显示文件头、尾内容
ctrl+alt+F1:命令行全屏显示
系统管理命令:
stat:显示指定文件的详细信息,比ls更详细
who:显示在线登录用户
whoami:显示当前操作用户
hostname:主机名
uname:显示系统信息
top:动态显示当前耗费资源最多进程信息
ps:显示瞬间进程状态 ps -aux
du:查看目录大小 du -h/home
ifconfig 查看网络情况
ping 查看网络连通情况
netstat 显示网络状态信息
man 命令
clear 清屏
alias 对命令重命名 alias showmeit="ps -aux" 接触 unalias showmeit
kill: 杀死进程