Python面试必备的问题及解答

介绍

这篇文章将为大家详细讲解有关Python面试必备的问题及解答,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1。什么是酸洗和unpickle ?

泡菜模块读入任何Python对象,将它们转换成字符串,然后使用转储函数将其转储到一个文件中——这个过程叫做酸洗。反之从存储的字符串文件中提取原始Python对象的过程,叫做unpickle。

<强> 2。什么是Python的命名空间?

在Python中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作,这就是命名空间。它就好像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻找相应的对象。

<强> 3。* args, * * kwargs ?参数是什么?

如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用* args;如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用* * kwargs。

<强> 4。负索引是什么?

Python中的序列索引可以是正也可以是负。如果是正索引,0是序列中的第一个索引,1是第二个索引。如果是负索引,(1)是最后一个索引而(2)是倒数第二个索引。

<强> 5。Python是如何进行内存管理的?

Python的内存管理是由私有堆空间管理的。所有的Python对象和数据结构都在一个私有堆中。程序员没有访问该堆的权限,只有解释器才能对它进行操作。为Python的堆空间分配内存是由Python的内存管理模块进行的,其核心API会提供一些访问该模块的方法供程序员使用.Python有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序使用。

<强> 6。如何判断单向链表中是否有环?

首先遍历链表,寻找是否有相同地址,借此判断链表中是否有环。如果程序进入死循环,则需要一块空间来存储指针,遍历新指针时将其和储存的旧指针比对,若有相同指针,则该链表有环,否则将这个新指针存下来后继续往下读取,直到遇见空,这说明这个链表无环。

<强> 7。mysql数据库如何分区,分表?

分表可以通过三种方式:mysql集群,自定义规则和合并存储引擎。

分区有四类:

范围分区:基于属于一个给定连续区间的列值,把多行分配给分区。

分列表区:类似于按范围分区,区别在分于列表区是基于列值匹配一个离散值集合中的某个值来进行选择。

散列分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含mysql中有效的,产生非负整数值的任何表达式。

关键分区:类似于按散列分区,区别在关键分于区只支持计算一列或多列,且mysql服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

<强> 8。如何对查询命令进行优化?

。应尽量避免全表扫描,首先应考虑在位置及顺序,涉及的列上建立索。

b。应尽量避免在哪里子句中对字段进行null值判断,避免使用!=或& lt;在操作符,避免使用或连接条件,或在地方子句中使用参数,对字段进行表达式或函数操作,否则会导致权标扫描

c。不要在哪里子句中的“=弊蟊呓泻?算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

d。使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用。

e。很多时候可考虑用存在代替在

f。尽量使用数字型字段

g。尽可能的使用varchar/nvarchar代替char/nchar

h。任何地方都不要使用select * from t,用具体的字段列表代替“*”,不要返回用不到的任何字段。

我。尽量使用表变量来代替临时表。

j。避免频繁创建和删除临时表,以减少系统表资源的消耗。

k。尽量避免使用游标,因为游标的效率较差。

l。在所有的存储过程和触发器的开始处设置设置NOCOUNT alt=" Python面试必备的问题及解答">

能够运行。当关键缺失时,执行DefaultDict类,字典的实例将自动实例化这个数列。

关于Python面试必备的问题及解答就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Python面试必备的问题及解答