python中常见的面试题哪些
这篇文章主要介绍python中常见的面试题哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1、python有哪些特性?
python是一门解释性开发语言,主要特点有:
可解释
具有动态特性
面向对象
简明简单
开源
具有强大的社区支持
2、深拷贝和浅拷贝之间的区别是?
深拷贝就是完全复制一个对象拷贝到另一个对象中,如果你对一个对象的拷贝做出改变时,不会影响原对象。在Python中使用函数deepcopy()执行深拷贝,导入模块copy,
>>>importcopy>>>b=copy.deepcopy(a)
浅拷贝知识复制一个对象的指针不复制其本身,如果我们在拷贝中改动,会影响到原对象。我们使用函数function()执行浅拷贝,
>>>b=copy.copy(a)
3、列表和元祖之间区别是?
列表和元祖之间主要是可变性不同,列表是可变的而元祖是不可变的,下面列举的实列说明:
>>>mylist=[1,3,3]>>>mylist[1]=2>>>mytuple=(1,3,3)>>>mytuple[1]=2Traceback(mostrecentcalllast):File"<pyshell#97>",line1,in<module>mytuple[1]=2
则会出现以下报错
TypeError:‘tuple’objectdoesnotsupportitemassignment
4、什么是Flask?
Flask是Python编写的一款轻量级Web应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask使用 BSD 授权。其中两个环境依赖是Werkzeug和jinja2,这意味着它不需要依赖外部库。正因如此,我们将其称为轻量级框架。
Flask会话使用签名cookie让用户查看和修改会话内容。它会记录从一个请求到另一个请求的信息。不过,要想修改会话,用户必须有密钥Flask.secret_key。
5、在Python中是如何管理内存的?
Python有一个私有堆空间来保存所有的对象和数据结构。作为开发者,我们无法访问它,是解释器在管理它。但是有了核心API后,我们可以访问一些工具。Python内存管理器控制内存分配。
另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。
6、解释python中的help()和dir()函数?
Help()函数是一个内置函数,用于查看函数或模块用途的详细说明
>>>importcopy>>help(copy.copy)
Helponfunctioncopyinmodulecopy:copy(x)ShallowcopyoperationonarbitraryPythonobjects.Seethemodule’s__doc__stringformoreinfo.
Dir()函数也是内置函数,dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。
>>>dir(copy.copy)
运行结果[‘__annotations__’,‘__call__’,‘__class__’,‘__closure__’,‘__code__’,‘__defaults__’,‘__delattr__’,‘__dict__’,‘__dir__’,‘__doc__’,‘__eq__’,‘__format__’,‘__ge__’,‘__get__’,‘__getattribute__’,‘__globals__’,‘__gt__’,‘__hash__’,‘__init__’,‘__init_subclass__’,‘__kwdefaults__’,‘__le__’,‘__lt__’,‘__module__’,‘__name__’,‘__ne__’,‘__new__’,‘__qualname__’,‘__reduce__’,‘__reduce_ex__’,‘__repr__’,‘__setattr__’,‘__sizeof__’,‘__str__’,‘__subclasshook__’]
7、什么是猴子补丁?
在运行期间动态修改一个类或模块。
>>>classA:deffunc(self):print("Hi")>>>defmonkey(self):print"Hi,monkey">>>m.A.func=monkey>>>a=m.A()>>>a.func()运行结果:Hi,Monkey
8、请解释下使用*args和*kwargs含义?
当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args。
>>>deffunc(*args):foriinargs:print(i)>>>func(3,2,1,4,7)运行结果为:32147
在不知道该传递多少关键字参数时,使用**kwargs来收集关键字参数
>>>deffunc(**kwargs):foriinkwargs:print(i,kwargs[i])>>>func(a=1,b=2,c=7)运行结果为:a.1b.2c.7
9、python中的字典是什么?
Python字典是一个容器,可以装列表,变量,字符串,浮点数等。。。。
注意:
1. Python的字典是一对一的形式,key:value,可以理解key是下标,value是内容
标准形式:{a:b},那么a就相当于下标,value就相当于内容。
2.下标是唯一的,即key赋值的时候不可以重复,不可用变量去赋值他,因为列表是可变的,所有也不能用列表去赋值
3.字典的存储没有顺序,我们凭借key值去取value的内容
>>>roots={25:5,16:4,9:3,4:2,1:1}>>>type(roots)<class'dict'>>>roots[9]运行结果为:3
字典是不可变的,可以用一个推导式来创建它
>>>roots={x**2:xforxinrange(5,0,-1)}>>>roots运行结果为:{25:5,16:4,9:3,4:2,1:1}
10、什么是负索引?
Python中的序列索引可以是正也可以是负。
如果是正索引,0是序列中的第一个索引,1是第二个索引。
如果是负索引,-1是最后一个索引,-2是倒数第二个索引。
>>>lst=[11,22,33,44,55]全取列表>>>lst[:][11,22,33,44,55]
列表倒序>>>lst[::-1][55,44,33,22,11]取最后一个>>>lst[-1]55取第一个>>>lst[0]11
11、解释一下python中的成员运输符?
通过成员运算符‘in’和‘not in’,我们可以确认一个值是否是另一个值的成员
>>>'me'in'disappointment'True>>>'us'notin'disappointment'True
12、讲下python中的位运算符?
与(&),按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
>>>0b110&0b0102
或(|),按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
>>>3|23
异或(^),按位异或运算符:当两对应的二进位相异时,结果为1
>>>3^21
取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
>>>~2-3
左位移(<<),运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
>>>1<<24
右位移(>>),把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
>>>4>>21
以上是python中常见的面试题哪些的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。