zoukankan      html  css  js  c++  java
  • 明天找python工作,看看这几道Python面试题吧,Python面试题No14

    第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のTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311512.html
Copyright © 2011-2022 走看看