不吹不擂,你想要的Python面试都在这里了315+道题+精心整理的解答

Posted 天晴天朗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不吹不擂,你想要的Python面试都在这里了315+道题+精心整理的解答相关的知识,希望对你有一定的参考价值。

  • Part01-Py基础篇(80)

  • Part02-网络编程和并发(34)

  • Part03-数据库和缓存(46)

  • Part04-前端框架和其他(155)

Part01-Py基础篇(80)

1、为什么学习Python?

2、通过什么途径学习的Python?

3、Python和Java、php、C、C++、C#等其他语言的对比?

4、简述‘解释型’和‘编译型’语言;

5、Python解释器的种类及特点;

6、‘位’和‘字节’的关系;

7、b、B、KB、MB、GB的关系;

8、请至少列举5个PEP8规范(越多越好);

9、通过代码实现如下转换:

10、编写一个函数,实现将IP地址转换成一个整数;

11、Python递归的最大层数;

12、求结果;

13、ASCII、unicode、UTF-8、GBK的区别;

14、字节码和机器码的区别;

15、三元运算规则以及应用场景;

16、列举Python3与Python2的区别;

17、用一行代码实现数值交换;

18、Python3和Python2中int和long的区别;

19、xrange和range的区别;

20、列举布尔值为False的常见值;

21、文件操作时候,xreadlines和readline的区别;

22、字符串、列表、元组、字典每个常用的5个方法;

23、lambda表达式格式以及应用场景;

24、pass的作用;

25、*args和**kwargs的作用;

25、*args和**kwargs的作用;

Part02-网络编程和并发(34)

Part03-数据库和缓存(46)

1、列举常见的关系型数据库和非关系型数据库都有哪些?

  1.1 关系型数据库:Oracle、mysql、DB2、Microsoft SQL Server、PostgreSQL、Microsoft Access、SQLite、Hive;

  1.2 非关系型数据库(NoSQL):MongoDB、Redis、ElasticsearchCassandra、HBase

  详情见权威的数据库排行榜:https://db-engines.com/en/ranking

  1.3 关系型与非关系型数据库的区别:

  • 关系型数据库

  1、特点:

  1. 基于单一关系模型,结构化存储,有完整性约束;
  2. 通过二维表建立数据之间的联系;
  3. 采用结构化查询语言(SQL)做数据读写;
  4. 操作保存数据的一致性

  2、优点:

  1. 通过事务处理保持数据的一致性;
  2. 数据更新的开销很小;
  3. 可以进行Join等复杂查询;
  4. 20多年的技术历程,技术成熟;

  3、缺点:

  1. 数据读写必须经过sql解析,大量数据、高并发下读写性能不足;
  2. 为保证数据一致性,需要加锁,影响并发操作;
  3. 无法适应非结构化的存储;
  4. 大量数据集中到一台服务区处理,使服务器不堪重负;
  5. “阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别;
  6. 扩展困难;
  7. 数据库庞大,价格昂贵;
  • NOSql数据库

  1、特点:

  1. 非结构化的存储;
  2. 基于多维关系模型;
  3. 部署容易,开源免费,成本低;

  2、优点:

  1. 处理高并发、大批量数据的能力强;
  2. 支持分布式集群,负载均衡,性能高;
  3. 解决“阻抗失谐”问题;
  4. 内存级数据库,查询速度快;
  5. 存储格式多,支持key-value形式、文档形式、图片形式;
  6. 没有多表连接查询机制的限制,扩展性高;

  3、缺点:

  1. 技术起步晚,维护工具以及技术资料有限;
  2. 不支持sql工业标准;
  3. 没有join等复杂的连接操作;
  4. 事务处理能力弱;
  5. 没有完整性约束,对于复杂业务场景支持较差;

 

 

2、MySQL常见数据库存储引擎及比较?

  数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。MySQL的核心就是存储引擎。

2.1 常见存储引擎;

  MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一存储引擎,针对具体的要求,可对每一张表使用不同的存储引擎。MySQL5.7 支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等。使用show engines语句来进行查看。

  • InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL5.5.5之后,InnoDB作为默认的存储引擎。

  • MyISAM基于ISAM的存储引擎,并对其进行扩展。它是在Web、数据库存储和其他应用环境下最常使用的存储引擎之一,MyISAM拥有较高的插入、查询速度,但是不支持事务。MySQL5.5.5之前的版本中,是默认的存储引擎;

  • MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问;

2.2 如何选择?

 功能  MyISAM  Memory  InnoDB  Archive
 存储限制 256TB   RAM 64TB None
 支持事务 No   No Yes No
 支持全文索引 Yes   No No  No
 支持数索引 No Yes  Yes  No 
 支持哈希索引 No  Yes  No  No 
 支持数据缓存 No  N/A  Yes  No 
 支持外键 No  No Yes  No 

 

如果要提供提交、回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是个良好的选择。如果数据表用来插入和查询记录,则MyISAM引擎能够提供较高的处理效率;如果只是临时存储数据,数据量不大,并且不需要较高的数据安全性,Memory,MySQL中使用该引擎作为临时表,存放查询的中间结果;如果只有INSERT 和SELECT操作,可以选择Archive引擎。Archive引擎支持高并发的插入操作,但是本身并不是事务安全的。Archive引擎非常适合存储归档类数据,如记录日志的信息可以使用Archive引擎。

3、简述数据三大范式?

4、什么是事务?MySQL如何支持事务?

5、简述数据库设计中一对多和多对多的应用场景?

6、如何基于数据库实现商品计数器?

7、常见SQL(必备)

8、简述触发器、函数、视图以及存储过程?

9、MySQL索引分类

10、索引在什么情况下遵循最左前缀的规则?

11、主键和外键的区别?

12、MySQL常见的函数?

13、列举创建索引但是无法命中索引的8种情况?

14、如何开启慢查询日志?

15、数据库导入导出命令(结构+数据)

16、数据库优化方案?

17、char和varchar的区别?

18、简述MySQL的执行计划?

19、在对name做了唯一索引的前提下,简述以下区别?

 select * from tb where name = ‘Oldboy-Wupeiqi’ 
 

select * from tb where name = ‘Oldboy-Wupeiqi’ limit 1

20、1000w条数据,使用limit offset分页时候,为什么越往后翻越慢?如何解决?

21、什么是索引合并?

22、什么是覆盖索引?

23、简述数据库读写分离?

24、简述数据库分库分表?(水平、垂直)

25、Redis和memcached的比较

26、Redis中数据库默认是多少个db及作用

27、Python操作Redis的模块?

28、如果Redis总某个列表的数据量非常大,如何实现循环显示每一个值?

29、Redis如何实现主从复制?以及数据同步机制?

30、Redis中的sentine的作用?

31、如何实现Redis集群?

32、Redis中默认有多少个哈希槽?

33、简述Redis有哪几种持久化的策略及比较?

34、列举Redis支持的过期策略?

35、MySQL里有2000w的数据,redis中只存20w数据,如何保证Redis中都是热点数据?

36、写代码,基于Redis的列表实现先进先出,后进先出队列,优先级队列?

37、如何基于Redis实现消息队列?

38、如何基于Redis实现发布和订阅?以及发布订阅和消息队列的区别?

39、什么是codis及其作用?

40、什么是twemproxy及其作用?

41、写代码实现Redis事务操作?

42、Redis中的watch的命令的作用?

43、基于Redis如何实现商城商品数量计数器?

44、简述Redis分布式锁和redlock的实现机制?

45、什么是一致性哈希?Python中是否有相应模块?

46、如何高效低找到Redis中所有以oldboy开头的key?

Part04-前端框架和其他(155)

1、谈谈你对http协议的认知

2、谈谈你对websocket协议的认知

3、什么是magic string?

4、如何创建响应式布局

以上是关于不吹不擂,你想要的Python面试都在这里了315+道题+精心整理的解答的主要内容,如果未能解决你的问题,请参考以下文章

不吹不擂,你想要的Python面试都在这里了315+道题

不吹不擂,你想要的Python面试都在这里了315+道题

不吹不擂,你想要的Python面试都在这里了315+道题+精心整理的解答

不吹不擂,315道Python面试题,欢迎挑战!

不吹不擂,315 道 Python 面试题,欢迎挑战!

不吹不擂,315 道 Python 面试题,欢迎挑战!