第1题: 如何解决验证码的问题,用什么模块,听过哪些人工打码平台?

PIL、pytesser、tesseract模块

平台的话有:(打码平台特殊,不保证时效性)

  • 云打码
  • 挣码
  • 斐斐打码
  • 若快打码
  • 超级鹰

第2题: ip 被封了怎么解决,自己做过 ip 池么?

关于 ip 可以通过 ip 代理池来解决问题 ip 代理池相关的可以在 github 上搜索 ip proxy 自己选一个
去说 https://github.com/awolfly9/IPProxyTool 提供大体思路:

  1. 获取器 通过 requests 的爬虫爬取免费的 IP 代理网址获取 IP。
  2. 过滤器通过获取器获取的代理请求网页数据有数据返回的保存进 Redis。
  3. 定时检测器定时拿出一部分 Proxy 重新的用过滤器进行检测剔除不能用的代理。
  4. 利用 Flask web 服务器提供 API 方便提取 IP

第3题: 在 Python 中,list,tuple,dict,set 有什么区别,主要应用在什么场景?

区别

  • list:链表,有序的数据结构, 通过索引进行查找,使用方括号”[]”;
  • tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;
  • dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”
    {}”;
  • set:集合,无序,元素只出现一次, 自动去重,使用”set([])”

    应用场景

  • list:简单的数据集合,可以使用索引;
  • tuple:把一些数据当做一个整体去使用,不能修改;
  • dict:使用键值和值进行关联的数据;
  • set:数据只出现一次,只关心数据是否出现, 不关心其位置。

第4题: 请描述方法重载与方法重写?

方法重载

是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
重载是让类以统一的方式处理不同类型数据的一种手段。

方法重写

子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

第5题: 如何用 Python 来发送邮件?

smtplib 标准库

可以参考菜鸟教程:https://www.runoob.com/python/python-email.html

第6题:是否了解线程的同步和异步?

  • 线程同步:多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低

    • 例子:你说完,我再说。
  • 线程异步:在访问资源时在空闲等待时同时访问其他资源,实现多线程机制
    • 你喊朋友吃饭,朋友说知道了,待会忙完去找你 ,你就去做别的了。

第7题:是否了解网络的同步和异步?

  • 同步:提交请求->等待服务器处理->处理完毕返回,这个期间客户端浏览器不能干任何事
  • 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

第8题:你是否了解MySQL数据库的几种引擎?

这个答案比较发散,可以重点说下面两种

InnoDB

InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。

在以下场合下,使用InnoDB是最理想的选择:

  1. 更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
  2. 事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
  3. 自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
  4. 外键约束。MySQL支持外键的存储引擎只有InnoDB
  5. 支持自动增加列AUTO_INCREMENT属性。

一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。

MEMORY

使用MySQL Memory存储引擎的出发点是速度。为得到最快的响应时间,采用的逻辑存储介质是系统内存。
虽然在内存中存储表数据确实会提供很高的性能,但当mysqld守护进程崩溃时,所有的Memory数据都会丢失。
获得速度的同时也带来了一些缺陷。  

一般在以下几种情况下使用Memory存储引擎:

  1. 目标数据较小,而且被非常频繁地访问。在内存中存放数据,所以会造成内存的使用,可以通过参数max_heap_table_size控制Memory表的大小,设置此参数,就可以限制Memory表的最大大小。
  2. 如果数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中。
  3. 存储在Memory表中的数据如果突然丢失,不会对应用服务产生实质的负面影响。

## 第9题:关注题,最近在公号更新一个神奇的系列入门文章
她专科学历
27岁从零开始学习c,c++,python编程语言
29岁编写百例教程
30岁掌握10种编程语言,
用自学的经历告诉你,学编程就找梦想橡皮擦

欢迎关注她的公众号,非本科程序员

明天找python工作,看看这几道Python面试题吧,Python面试题No14的更多相关文章

  1. 他学习一年Python找不到工作,大佬都说你别再学Python了!

    引言: 都说,滴水穿石非一日之功.然而有些人即使奋斗一辈子也比不上别人一年,别人学习一年比不得你学习一个月.其中缘由,有些人看了大半辈子还没看明白. 即使Python这么火,为何你学习一年的Pytho ...

  2. Python工作好找吗?没有工作经验和学历怎么找?【就业必学】

    大家都知道,随着人工智能时代的到来,Python的需求也变的越来越大了.从目前各大IT招聘网上显示招聘需求是非常大,而且薪资基本都在10k起,高的可达40-50k,当然这个要求很高,看下普遍的吧: 一 ...

  3. 震惊!几道Python 理论面试题,Python面试题No18

    本面试题题库,由公号:非本科程序员 整理发布 第1题: 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是执行的时候 ...

  4. 面试前赶紧看了5道Python Web面试题,Python面试题No17

    目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...

  5. 千万不要错过这几道Python面试题,Python面试题No16

    第1题: python下多线程的限制以及多进程中传递参数的方式? python多线程有个全局解释器锁(global interpreter lock),简称GIL,这个GIL并不是python的特性, ...

  6. Python 最常见的 170 道面试题解析:2019 最新

    Python 最常见的 170 道面试题解析:2019 最新 2019年06月03日 23:30:10 GitChat的博客 阅读数 21329 文章标签: PythonPython入门Python面 ...

  7. Python 最常见的 170 道面试题全解析:2019 版

    Python 最常见的 170 道面试题全解析:2019 版 引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了 ...

  8. 在 Azure 上执行一些简单的 python 工作

    1. 公司禁用了 python 我的主业是桌面开发,偶尔也需要搞搞数据和算法.最近在用 python 处理一些工作,正搞得热火朝天,突然 python 就不能用了,一查记录原来是 IT 管理员禁止我使 ...

  9. 【免费讲座IX算法第一阶段】转专业找CS工作“打狗棒法”

    个人经验CS不相干,如何收拾简历?如何获取知识,在最短的时间内找到一份工作需要?如何避免盲目刷称号,迅速制定学习计划?如何准备面试? 星期五.九算法黄蓉老师受邀嘉宾 [在线共享] 她成功转专业的六个月 ...

  10. CentOS7下python工作环境管理

    一.pyenv管理不同的python版本1.下载安装git clone git://github.com/yyuu/pyenv.git ~/.pyenv  echo 'export PYENV_ROO ...

随机推荐

  1. PHP获取一年中每个星期的开始和结束日期的方法

    这篇文章主要介绍了PHP获取一年中每个星期的开始和结束日期的方法,涉及php对日期操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了PHP获取一年中每个星期的开始和结束日期的方法. ...

  2. stl_multimap.h

    stl_multimap.h // Filename: stl_multimap.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...

  3. 把自定义的demuxer加入ffmpeg源码

    .简介:把上一篇文章中的demuxer加入ffmpeg源码中去,使可以用命令行方式调用自定义的demuxer 第一步: 在libavformat目录下新建mkdemuxer.c和mkdemuxer.h ...

  4. #include <deque>

    deque \(deque\)头文件主要包括一个双端队列容器.是一个支持在两端插入两端删除的线性储存空间,与vector和queue相似.与\(vector\)比起来,\(deque\)可以在\(O( ...

  5. java多线程编程核心技术——第二章总结

    第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchro ...

  6. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  7. 优化Java堆大小的5个技巧

    本文作者Pierre是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE.中间件和JVM技术.根据他多年的工作实践经验,他发现许多性能问题都是由Java堆容量不足和调优引起的.下面他 ...

  8. 一:安装Scala

    Scala是一种类似Java的纯面向对象的函数式编程语言,由于函数具有明确的确定输入对确定输出的关系,所以适合推理和计算,一切函数都可以看成一系列的计算组成,另外由于Scala函数是没有副作用和透明的 ...

  9. Design:目录

    ylbtech-Design:目录 1.返回顶部 1. http://idesign.qq.com/#!index/feed 2. https://www.behance.net/ 3. 2.返回顶部 ...

  10. 恢复到版本并销毁之后的git提交记录

    git reset --hard HEAD~1(或者你想要的版本号) git push --force # 千万注意:此操作无法恢复