我们对于面试题的复习,总是需要在学习了一段时间的知识点后,不断的进行自我检测。在具体的面试题种类上,我们会做重点的筛选。
1、Python 中,list,tuple,dict,set 有什么区别,主要应用在什么场景?
(1)区别
list:链表,有序的数据结构, 通过索引进行查找,使用方括号”[]”;
tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;
dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”
{}”;
set:集合,无序,元素只出现一次, 自动去重,使用”set([])”
(2)应用场景
list:简单的数据集合,可以使用索引;
tuple:把一些数据当做一个整体去使用,不能修改;
dict:使用键值和值进行关联的数据;
set:数据只出现一次,只关心数据是否出现, 不关心其位置。
2、是否了解网络的同步和异步?
同步:提交请求->等待服务器处理->处理完毕返回,这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕
3、请描述方法重载与方法重写
方法重载
是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
重载是让类以统一的方式处理不同类型数据的一种手段。
方法重写
子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
4、ip 被封了怎么解决,自己做过ip池么?
关于 ip 可以通过 ip 代理池来解决问题 ip 代理池相关的可以在 github 上搜索 ip proxy
提供大体思路:
获取器 通过 requests 的爬虫爬取免费的 IP 代理网址获取 IP。
过滤器通过获取器获取的代理请求网页数据有数据返回的保存进 Redis。
定时检测器定时拿出一部分 Proxy 重新的用过滤器进行检测剔除不能用的代理。
利用 Flask web 服务器提供 API 方便提取 IP