最常见的道Python面试题你能答对多少附带答案_第1页
最常见的道Python面试题你能答对多少附带答案_第2页
最常见的道Python面试题你能答对多少附带答案_第3页
最常见的道Python面试题你能答对多少附带答案_第4页
最常见的道Python面试题你能答对多少附带答案_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最常见的道Python试题你能答对多少附带答案TTA standardization office TTA 5AB- TTAK 08- TTA 2C2018年最常见的36道Python面试题你能答对多少?附带答案Q1: Python有哪些特点和优点?作为一门编程入门语言,Python主要有以下特点和优点:可蹄 具有动态特性面向对象简明简单开源具有强大的社区支持当然,实际上Python的优点远不止如此。Q 2:深拷贝和浅拷贝之间的区别是什么?答:深拷贝就是将一个又掾拷贝到另一个对象中,这意味着如果你对一个对象的拷贝做出改变时,不会影响原对象。在Python中,我们使用函数deepcopy()执行

2、深拷贝,导入模块copy , 如下所示:1. >>>importcopy2. >>>b=(a)而浅拷贝则是将一个对象的引用拷贝到另一个对象上,所以如果我们在拷贝中改动,会影响到原对象。我们使用函数function。执行浅拷贝,使用如下所示:>>> b=(a)复制代码Q 3列表和元组之间的区别是? 答:二者的主要区别是列表是可变的,而元组是不可变的。举个例子,如下所示:<D-dnno3 dA 一 I-把徑KM空曲邰000 丄 To_dnMlu L AQnpoluvunQU 三:卜6#_ qsAdvo-lro ulse三eulu。lsol

3、u)>peq。el sZHrd-dnMCUAAA 寸 (mcndH -dnMIUAAA mZHSISMEAAA .0 co卅d上 SME A A A II-ffiHgd 旺赵职®K Gmg生s忑uorh眨屆.邑Kn。回処2生岁1 co-s、nl只址凶浪眯艮 os-ejuovs-co 一 ss dx mCDruluo】 I-填如一筱凹、砸5鼻U。女d思=徉軀e frM蚁泾川稻廿uo£xd巴能建守0 。繼屋袒则$囚W -副叵训韻wM&£Yg翱址竝到K- uo£Ad 000 昴寸 0 匕 -Uiuu6一sseiu七七oddns-ousOP10qo

4、 02. >>>min=aifa<belseb3. >>>min运行结果:1. 22.3. >>>print("Hi")ifa<belseprint("Bye')运行结果:1. Hi2.Q 5在Python中如何实现多线程?个线程就是一个轻呈级进程,多线程能让我们一次执行多个线程。我们都知道,Python是多线 程语言,其内置有多线程工具包。Python中的GIL(全局解释器锁)确保一次执行单个线程。一个线程保存GIL并在将其传递给下个 线程之前执行一些操作,这会让我们产生并行运行的错觉。但

5、实际上,只是线程在CPU上轮流运 行。当然,所有的传递会增加程序执行的内存压力。Q 6.解释一下Python中的继承当一个类继承自另一个类,它就被称为一个子类/派生类,继承自父类/基类/超类。它会继承俊取 所有类成员(属性和方法)。继承能让我们重新使用代码,也能更容易的创建和维护应用。Python支持如下种类的继承: 单继承:一个类继承自单个基类多继承:个类继承自多个基类 多级继承:个类继承自单个基类,后者则继承自另一个基类分层继承:多个类继承自单个基类 混合继承:两种或多种类型继承的混合Q7.什么是Flask?Flask是Python编写的一款轻呈级Web应用框架。其WSGI工具箱采用Wer

6、kzeug ,模板引擎 则使用Jinja2o Flask使用BSD授权。其中两个环境依赖是Werkzeug和jinja2 ,这意味着它不 需要依赖外部库。正因如此,我们将其称为轻呈级框架。Flask会话使用签名cookie让用户查看和修改会话内容。它会记录从一个请求到另一个请求的信 息。不过,要想修改会话,用户必须有密钥。Q 8.在Python中是如何管理内存的?Python有一个私有堆空间来保存所有的又竣和数据结构。作为开发者,我们无法访问它,是解释 器在管理它。但是有了核心API后,我们可以访问一些工具。Python内存管理器控制内存分配。 另外,内置垃圾回收器会回收使用所有的未使用内存,

7、所以使其适用于堆空间。Q 9.解释Python中的help。和術0函数Help。函数是一个内置函数,用于查看函数或模块用途的详细说明:1. >>>importcopy2. >>>help运行结果为:1. Help on functioncopyinmodulecopy:2. copy(x)3. ShallowcopyoperationonarbitraryPythonobjects.4. Seethemodule1 s_doc_stringformoreinfoDir()函数也是Python内置函数,dir()函数不带参数时,返回当前范围内的变量、方法和定义

8、的 类型列表;带参数时,返回参数的属性、方法列表。以下实例展示了 dir的使用方法:1 A>>dir运行结果为:1. f_annotations_f , '_call_ ,'_class_ z f_closure_r . '_codedefaults_' , '_delattr_,_dict_dir_ x '_doc二_eq'_format_ r '_ge_,'_get_ r '_getattibute_ f '_globals_, '_gt_ . '_hash_ J_init二

9、init_subclass二 f J_kwdefaults_f , '_le_ ,It_ '_module_ r '_name_ f #_ne_f r '_new二,'_qualname_ f '_reduce_ r '_reduce_ex_ f '_repr_,J_setattr '_sizeof_ z f_str_f . '_subclasshook_ Q10.当退出Python时,是否释放全部内存?答案是No。循环引用具它对象或引用自全局命名空间的对象的模块,在Python退出时并非完全 释放。另外,也不会释

10、放C库保留的内存部分。oaaa00OHAAA COEHAA A 9 SA >luolu£uud s S)AJZUOUJJ p A A A 寸.cHJluud .rn agunkQP 0 /ssepAAC I 。理地饶揪匕电迤炮招叵緞匸旧田、H+hE 除呢 0i:TC 0-只咪册£旧SOO-AAA 寸A -卫p.ssepv & (sloo)QdAlAAA 0 nHz 寸卅 609rsG0TslooAAA Ie>£ 启+O、0七珊»忡宦-H-uo£xd ZT 0 >£UONT.I-只咪册Ihy旧1. 32.字典是

11、不可变的,我们也能用一个推导式来创建它。1. > a >roots=x*2:xforxinrange(5fOf-l)2. >>> roots运行结果:1. 25:5,16:4,9:3,4:2,1:1Q 13.请解释使用“rgs和*kwargs的含义当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用Wgs。1 >>>deffunc(*args):2 foriinargs:3. print(i)4 > A>func(32147)运行结果为:1. 32.5. 16.7. 48.8. 710.在我们不知道该传递多少关键

12、字参数时,使用*kwargs来收集关键字参数。1. >>>deffunc(*kwargs):2. foriinkwargs:3. print(i,kwargsi)4. >>>func(a=l,b=2,c=7)运行结果为:1.2.2. ?Q14.请写一个Python逻辑,计算一个文件中的大写字母数量1. >>>importos2. > > >('C:UserslifeiDesktop')3. > > >withopen(")astoday:4. count=05. foriin()

13、:6. if():7. count+=l8. print(count)9.运行结果:1. 262.Q 15 什么是员索引?我们先创建这样一个列表:1. >>>mylist= 0,123,4,5,6,7,8负索引和正索引不同,它是从右边开始检索。1. >>>mylist-3运行结果:1. 6它也能用于列表中的切片:结果:1. 3,4,56刀Q 16.如何以就地操作方式打乱一个列表的元素?为了达到这个目的,我们从random模块中导入shuffle。函数。1. > > >fromrandomimportshuffle2. >>>

14、;shuffle(mylist)3. >>>mylist运行结果:1. 3,4,8Q57621Q17.解释Python中的join。和split。函数Join ()能让我们将指定字符添加至字符串中。1. >>>';.join(,12345,)运行结果:1. '123,4,5,2.Split()能让我们用指走字符分割字符串。1. >>>,l/2I3A5l.split(7)运行结果:1. T , '2' ,3,4 , '5,Q 18. Python区分大小写吗?如果能区分像myname和Myname这样的

15、标识符,那么它就是区分大小写的。也就是说它很在乎大写和”宵。我们可以Python试一i式:1. > a > myname=,Ayush2 >A>Myname2. Traceback(mostrecentcalllast):3. Filen<pyshell#3>'JinelJn<module>运行结果:1 MynameNameError:name 'Myname'2. isnotdefined可以看到,这里出现了 NameError,所以Python是区分大宵的。Q19. Python中的标识符长度能有多长?在Python中

16、,标识符可以是任意长度。此外,我们在命名标识符时还必须遵守以下规则:2. 其余部分可以使用A-Z/a-z/0-93. 区分大小写4. 关键字不能作为标识符,Python中共有如下关键字:5.Q 20.怎么移除一个字符串中的前导空格?字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。我们使用方法IstripO可以 将它从字符串中移除。1. >>>'Ayushi'.IstripO结果:1. 'Ayushi,2.可以看到,该字符串既有前导字符,也有后缀字符,调用IstripO去除了前导空格。如果我们想去 除后缀空格,就用rstripO方法。1.

17、>>>'Ayushi'.rstripO结果:1. 'Ayushi,2.从Q 21到Q 35是为有Python经验者准备的进阶版Python面试题。Q 21.怎样将字符串转换为小写?我们使用lowerQ方法。1. >>>,AyuShi'.lower()结果:1. 'ayushi,2.使用upperO方法可以将其转换为大写。1. >>>'AyuShi'.upper()结果:1. TXYUSHI,2.另外,使用isupper()和islowerO方法检查字符春是否全为大写或小写。1. >

18、;>>'AyuShi'.isupperO2. False3.3. >>>'AYUSHr.isupper()4. True6.5. >>>'ayushi'.islower()6. True9.7. >>>'yu$hi'.islower()8. True12.9. >>>'YU$Hr.isupper()10. True15.那么,像和$这样的字符既满足大写也满足宵。Istitle()能告诉我们一个字符串是否为标题格式。1. >>>&#

19、39;TheCorpseBride'.istitleO2. True3.Q 22. Python中的pass语句是什么?在用Python写代码时,有时可能还没想好函数怎么写,只写了函数声明,但为了保证语法正确, 必须输入一些东西,在这种情况下,我们会使用pass语句。1. >>>deffunc(*args):2. pass3. >>>0 I寸(一)luyd.rn 哮巴耒:匸一0 P) 6ueu:E0JAAA 1寸(一)luKrnnuRUOHcnH丄七0P) 6ueu:EOJAAA 1 nwlu。、胆M92.2. 14.3. 26.4. 48.5. 5

20、10.11.612.Q 23. Python中的闭包是什么?当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包。其意义就是会记录这 个值。1. >>>defA(x):2. defB():3. print(x)4. returnB5. >>>A(7)()结果:8 + :AA .1吕舉迴區块-(+)血5 -、血M旧益 e L 血一筱。坨M星嘶ss,坨M i 矩M耀直矩M旧联氷矩M旧益-坨M旧狂l s、甘uolMd田 。毎®旧锁M1-龜饕应M凹feQg皿-H-uo£Ad uo£xd A矍.s 09S CN 护 LAAA

21、.1 喺舉iseg蛇、G)翟&».aaa sma鲁fiea如salpwCN4. 除号(/),用第二个值除以第一个值1. >>>7/82. ?3. > > > 1/14. ?5向下取整除、取模和取冨运算,参见上个问题。Q 26.解释一下Python中的关系运算符关系运算符用于比较两个值。1小于号(<),如果左边的值较小,则返回True。1. >>>,hi'<,Hi,2. False3.2. 大于号(>),如果左边的值较大,则返回True.1. >>> + >2. True3.

22、3. 小于等于号(<=),如果左边的值小于或等于右边的值,则返回Ture。1. >>><=32. True3.4大于等于号(>=)r如果左边的值大于或等于右边的值,则返回True.1 >A>True>=False2. True3.等于号(=),如果符号两边的值相等,则返回True。1. >>>1,3,2,2= =1,2,32. True3.不等于号(!=),如果符号两边的值不相等,则返回True。1 A>>True! =2. True3.4:>>>False! =5. True6.Q 27.解

23、释一下Python中的賦值运算符这在Python面试中是个重要的面试问题。我们将所有的算术运算符和赋值符号放在一起展示:AA AFeAA A.OI6L00 AAA L h'aaa 9Ln8 寸 eAAA m TU+eACA 0 HAA A I。一OU、0 pue -毎*旧«啊匕cn竝圧 uo£>d 应m蚁Kg-fruomAd i eAAA 006 寸.61aaa.s FPAAZI91 eAAA.SICAAA.寸IH寸 TNI1. >>>FalseandTrue2. False3.3. >>>7<7orTrue4. Tr

24、ue6.5. >>>not2=26. False9.Q 29.解释一下Python中的成员运算符通过成员运算符如和notin',我们可以确认一个值是否是另一个值的成员。1. >>>'me'in'disappointment'2. True3.3. >>>'us'notin'disappointment'4. True6.Q 30.解释一下Python中的身份运算符这也是一个在Python面试中常问的问题。通过身份运算符is'和is not',我们可以确认

25、两个值是否相同。OIOqo<«o 二 qoAAA .1 o tomKQx只咪纵2心耳食占£粗心巨聖3区眯呂迥eg常旧m曲-. (&肝uo£Ad 拄恋-K 09nls s-etousonlAAA 寸m s-fCXJOLSOTAAA I0<eAAA .1m e z0-cnAAA .1二 、毘 I - 、e塩 z3.4.取反(),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为11. >>>22. -33.5左位移(<<),运算数的各二进位全部左移若干位,由 << 右边的数字指走了移动的位数,高位 丢弃,低位补01. >>>1<<22. 43.6右位移(>>),把">>左边的运算数的各二逬位全部右移若干位, >> 右边的数字指走了移动的 位数1. >>>4>>22. 13.Q 32.在Python中如何使用多逬制数字?我们在Python中,除十进制外还可以使用二进制、八迸

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论