在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Python面试问题 问题1。 Python的主要功能是什么? python特性如下:
Q.2。区分深层和浅层拷贝。 深拷贝将对象复制到另一个对象中。这意味着如果您对对象的副本进行更改,则不会影响原始对象。在Python中,我们使用函数 deepcopy(),我们导入拷贝模块,用法如下: >>> import copy >>> b=copy.deepcopy(a) 深层复制 – Python面试问题与解答 但是,浅拷贝会将一个对象的引用复制到另一个对象。因此,如果我们在副本中进行更改,则会影响原始对象。方法 copy(),用法如下: >>> b=copy.copy(a) 浅拷贝 – Python访谈问题和答案
Q.3。区分列表和元组。 主要区别在于列表是可变的,但元组是不可变的。例子: >>> mylist=[1,3,3] >>> mylist[1]=2 >>> mytuple=(1,3,3) >>> mytuple[1]=2 Traceback (most recent call last): File “<pyshell#97>”, line 1, in <module> mytuple[1]=2 TypeError: ‘tuple’ object does not support item assignment Q.4。用Python解释三元运算符。 在Python中,与C++不同,我们没有?:,但我们有: [on true] if [expression] else [on false] 如果表达式为True,则执行[on true]下的语句。否则,在[on false]下执行。 以下是如何使用它: >>> a,b=2,3 >>> min=a if a<b else b >>> min 2 >>> print("Hi") if a<b else print("Bye") Hi
Q.5。如何在Python中实现多线程? 线程是一个轻量级的进程,并且多线程允许我们一次执行多个线程。如您所知,Python是一种多线程语言。它有一个multi-threading包。 GIL(全局解释器锁)确保一次执行单个线程。一个线程保存GIL并在将其传递给下一个线程之前做了一些工作。这就产生了并行执行的错觉。但实际上,它只是在CPU上轮流轮流。当然,所有传递都会增加执行的开销。 问题6。在Python中解释继承。 当一个类继承自另一个类时,它被称为继承自parent /base /super类的子类/派生/子类。它继承/获取所有成员(属性和方法)。 Python访谈问题 – Python中的继承 继承使我们可以重用我们的代码,并且还可以更轻松地创建和维护应用程序。 Python支持以下类型的继承:
Q.7。什么是Flask? Python Flask正如我们之前讨论的那样,是一个用于Python的Web微框架。它基于’Werkzeug,Jinja 2和良好意图’BSD许可证。它的两个依赖项是Werkzeug和Jinja2。这意味着它几乎不依赖于外部库。因此,我们可以称之为轻型框架。 会话使用签名cookie来允许用户查看和修改会话内容。它会记住从一个请求到另一个请求的信息。但是,要修改会话,用户必须具有密钥Flask.secret_key。 Q.8。如何在Python中管理内存? Python有一个私有堆空间来容纳所有对象和数据结构。作为程序员,我们无法访问它;由解释器来管理它。但是使用核心API,我们可以访问一些工具。 Python内存管理器控制分配。 此外,内置的垃圾收集器会回收所有未使用的内存,以便可以将其用于堆空间。 Q.9。在Python中解释 help()和 dir()函数。 help()函数显示文档字符串及其参数的帮助。 >>> import copy >>> help(copy.copy) 有关copy模块中的方法copy的帮助: copy(X) 对任意的浅拷贝操作Python对象。 有关详细信息,请参阅模块的__doc__字符串。 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__’]
Q.10。每当你退出Python时,所有内存都是de-allocated吗? 这里的答案是否定的。该模块使用循环引用其他对象或从全局命名空间引用的对象,并不总是在退出Python时释放。 另外,C库保留的部分内存是不可能de-allocate的。 Q.11。什么是monkey补丁? 在run-time上动态修改类或模块。 >>> class A: def func(self): print("Hi") >>> def monkey(self): print "Hi, monkey" >>> m.A.func = monkey >>> a = m.A() >>> a.func() 输出 Hi,monkey Q.12。 Python中的字典是什么? A python dictionary 是我从未在其他语言中看到过的东西,比如C++或者Java编程。Python中的字典拥有key-value对。 >>> roots={25:5,16:4,9:3,4:2,1:1} >>> type(roots) >>> roots[9] 3 字典是可变的,我们也可以使用comprehension来创建它。 >>> roots={x**2:x for x in range(5,0,-1)} >>> roots {25:5,16:4,9:3,4:2,1:1} Q.13。 * args和** kwargs是什么意思? 如果我们不知道将多少个参数传递给函数,比如当我们想要传递一个列表或一个元组值时,我们使用* args。 >>> def func(*args): for i in args: print(i) >>> func(3,2,1,4,7) 3 2 1 4 7 **当我们不知道将会有多少关键字参数时,它会获取关键字参数。 >>> def func(**kwargs): for i in kwargs: print(i,kwargs[i]) >>> func(a=1,b=2,c=7) A.1 B.2 C.7 args和kwargs这个词是一个惯例,我们可以使用任何东西代替它们,但最好延用管理。
Q.14。编写Python逻辑来计算文件中的大写字母数。 >>> import os >>> os.chdir('C:\\Users\\lifei\\Desktop') >>> with open('Today.txt') as today: count=0 for i in today.read(): if i.isupper(): count+=1 print(count) 26 Q.15。什么是负的索引? 我们来看一个list吧。 >>> mylist=[0,1,2,3,4,5,6,7,8] 与正索引不同,负索引从右边开始搜索。 >>> mylist[-3] 6 这也有助于从后面切片: >>> mylist[-6:-1] [3,4,5,6,7] Q.16。你如何本地(in-place)随机化列表的内容? 为此,我们将从random模块中导入函数 shuffle()。 >>> from random import shuffle >>> shuffle(mylist) >>> mylist [3,4,8,0,5,7,6,2,1] Q.17。用Python解释 join()和 split()。 join()允许我们通过我们指定的字符将字符串中的字符连接在一起。 >>> ','.join('12345') “1,2,3,4,5” split()允许我们在指定的字符周围分割一个字符串。 >>> '1,2,3,4,5'.split(',') [‘1’,’2’,’3’,’4’,’5’] 问题18。Python是区分大小写(case-sensitive)吗? 如果语言区分myname和Myname之类的标识符,则语言为case-sensitive。换句话说,它关心小写或大写。让我们用Python尝试一下。 >>> myname='Ayushi' >>> Myname Traceback (most recent call last): File “<pyshell#3>”, line 1, in <module> Myname NameError: name ‘Myname’ is not defined 如您所见,这引发了NameError。这意味着Python确实是case-sensitive。
Q.19。在Python中标识符可以多长? 在Python中,标识符可以是任意长度。除此之外,我们必须遵循一些规则来命名一个:
问题20。你如何将字符串转换为小写? 我们使用 lower()方法。 >>> 'AyuShi'.lower() “ayushi” 要将其转换为大写,我们使用 upper()。 >>> 'AyuShi'.upper() “AYUSHI” 另外,要检查字符串是全部大写还是全部小写,我们使用方法 isupper()和 islower()。 >>> 'AyuShi'.isupper() False >>> 'AYUSHI'.isupper() True >>> 'ayushi'.islower() True >>> '@yu$hi'.islower() True >>> '@YU$HI'.isupper() True 因此,像@和$这样的字符同时满足大小写判断。 此外, istitle()将告诉我们字符串是否属于标题情况。 >>> 'The Corpse Bride'.istitle() True
Q.21。 Python中的pass语句是什么? 我们的代码中可能有时候还没有决定要做什么,但我们必须输入一些东西才能使它在语法上正确。在这种情况下,我们使用pass语句。 >>> def func(*args): pass >>> 同样,break终止循环。 >>> for i in range(7): if i==3: break print(i) 0 1 2 最后,continue语句跳到下一次迭代。 >>> for i in range(7): if i==3: continue print(i) 0 1 2 4 五 6 Q.22。什么是Python中的闭包? 当嵌套函数引用其封闭范围中的值时,会产生闭包。这里的重点是它记住了价值。 >>> def A(x): def B(): print(x) return B >>> A(7)() 7 有关闭包的更多深度解析,请参阅Python中的闭包。 Q.23。解释Python中的//,%和**运算符。 //运算符执行除法(floor division)。它将返回除法结果的整数部分。 >>> 7.0//2 3 普通除法将在这里返回3.5。 同样,**执行取幂。 >>> 2**10 1024 最后,%是模数。 >>> 13%7 6 >>> 3.5%1.5 0.5
问题24。什么是membership操作符? 通过操作符’in’和’not in’,我们可以确认某个值是否是另一个的成员。 >>> 'me' in 'disappointment' 真正 >>> 'us' not in 'disappointment' 真正 Q.25。在Python中解释identity运算符。 操作符’是’和’不’告诉我们两个值是否具有相同的身份。 >>> 10 is '10' False >>> True is not False True
Q.26。Python除了10进制,还可以使用那些进制? 在Python中,可以用二进制,八进制和十六进制输入数字。
>>> int(0b1010) 10 要将数字转换为二进制形式,我们使用 bin()。 >>> bin(0xf) “0b1111”
>>> oct(8) “0o10”
>>> hex(16) “为0x10” >>> hex(15) “0xf” 问题27。如何获得字典中所有键的列表? 使用函数 keys()。 >>> mydict={'a':1,'b':2,'c':3,'e':5} >>> mydict.keys() dict_keys([‘a’,’b’,’c’,’e’]) Q.28。带有前导下划线的标识符的意义? 由于Python没有私有变量的概念,因此使用前导下划线来声明变量private是一种惯例。这就是为什么我们不能对我们不想私有的变量这样做。 Q.29。如何在一个语句中声明多个赋值? 有两种方法可以做到这一点: >>> a,b,c=3,4,5 #This assigns 3, 4, and 5 to a, b, and c respectively >>> a=b=c=3 #This assigns 3 to a, b, and c Q.30。什么是tuple unpacking? 这是一种将一组值打包成元组的方法。 >>> mytuple=3,4,5 >>> mytuple (3,4,5) 这将3,4和5打包成mytuple。 现在,我们将元组中的值解包为变量x,y和z(tuple unpacking)。 >>> x,y,z=mytuple >>> x+y+z 12
参考资料
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13