专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

20个Python面试题来挑战你的知识

  在本文中,我将我的一些笔记变成了20个面试问题,涵盖了数据结构、核心编程概念和Python最佳实践。
  希望你能完成其中的一些并重温你的Python技能。
  事不宜迟,让我们直接进入。1。列表和元组有什么区别?你应该什么时候使用哪一个?
  列表是可变数据结构,而元组是不可变数据结构。
  Python中的可变对象具有更改其值的能力。
  列表是动态的:你可以向其中添加项目或覆盖和删除现有项目。
  元组是固定大小的:它们没有方法append或extend方法。你也不能从中删除项目。
  元组和列表都支持索引并允许使用in运算符检查其中的现有元素。
  在某些情况下,我认为元组可能有用。如果你声明一个你知道永远不会更改的项目集合,或者你将只循环而不更改其值,请使用元组。如果你寻找性能,元组比列表更快,因为它们是只读结构。如果你不需要写操作,请考虑使用元组。如果你想防止意外写入不需要更改的数据,元组可以使你的代码更安全。
  这是一个代码示例,显示了元组与列表的不同之处。numbers〔1,2,3,4,5〕numbers〔1〕100print(numbers)〔1,100,3,4,5〕names(john,joe,alice)names〔0〕bob)TypeErrorTraceback(mostrecentcalllast)ipythoninput225012ce34a87inmodule1names〔0〕bobTypeError:tupleobjectdoesnotsupportitemassignment2多处理和多线程有什么区别?你应该什么时候使用哪个?
  多处理和多线程是旨在加快代码速度的编程范例。
  当你使用多处理时,你可以在进程上并行计算。进程是独立的,不相互通信:它们不共享相同的内存区域,并且相互之间有严格的隔离。在应用方面,多处理适用于CPU密集型工作负载。但是,它确实具有与进程数量成正比的大量内存占用。
  另一方面,在多线程应用程序中,线程存在于单个进程中。因此,它们共享相同的内存区域:它们可以修改相同的变量并且可以相互干扰。虽然进程是严格并行执行的,但在Python中的给定时间点只执行一个线程,这是由于全局解释器锁(GIL)。多线程适用于受IO限制的应用程序,例如网页抓取或从数据库中获取数据。
  如果你想了解有关多线程和多处理的更多信息,我建议你阅读我之前关于多进程跟线程的文章关于多线程你知道多少呢?,该文章全面介绍了这两个概念。3模块、包和库之间有什么区别?
  模块只是一个Python文件,旨在导入脚本或其他模块。它包含函数、类和全局变量。
  包是模块的集合,它们在文件夹中组合在一起以提供一致的功能。包可以像模块一样被导入。它们通常有一个init。py文件告诉Python解释器按原样处理它们。
  库是包的集合。4python中的多线程有什么问题?
  全局解释器锁(或GIL)可防止Python解释器同时执行多个线程。简而言之,GIL强制在Python中的任何时间点只执行一个线程。
  这代表了依赖多线程代码的CPU密集型应用程序的一个很大的性能瓶颈。5什么是装饰器?你能描述一下装饰器值得使用的情况吗?
  装饰器是一个接收函数作为输入并返回函数作为输出的函数。装饰器的目标是在不改变其核心机制的情况下扩展输入函数的行为。
  使用装饰器还可以防止你重复自己。它迫使你编写一次通用代码,然后将其用于需要它的每个功能。
  装饰器大放异彩的典型用例是日志记录。
  例如,想象一下,你希望将传递给程序中调用的每个函数的所有参数值记录到终端。你可以遍历每个函数定义并将其写下来,或者你可以只编写一个装饰器来执行此日志记录任务并将其应用于所有需要它的函数。
  将装饰器应用于函数只需在该函数的定义上方添加一行即可。没有装饰器defmyawesomefunction():做一些很棒的事情带有装饰器myawesomedecoratordefmyawesomefunction():做更棒的事情
  下面是一个代码示例,它创建了一个名为的装饰器,该装饰器log记录了传递给函数的参数的值。importlogginglogging。basicConfig(format(asctime)s〔(levelname)s〕(name)s(message)s,levellogging。INFO,datefmtYmdH:M:S,streamsys。stdout,)loggerlogging。getLogger(notebook)deflog(func):defwrapper(args,kwargs):outputfunc(args,kwargs)msgf{func。name}wasrunwiththefollowingargs:{args}andthefollowingkwargs{kwargs}logger。info(msg)returnoutputreturnwrapperlogdefprintargs(args,kwargs):print(args)print(kwargs)printargs(10,a2,btest)(10,){a:2,b:test}2022030618:07:05,248notebookINFOprintargswasrunwiththefollowingargs:(10,)andthefollowingkwargs{a:2,b:test}printargs(10,100,a2,btest)(10,100){a:2,b:test}2022030618:07:05,562notebookINFOprintargswasrunwiththefollowingargs:(10,100)andthefollowingkwargs{a:2,b:test}
  装饰器还可以用于其他目的,例如计时功能、验证输入数据、执行访问控制和身份验证、缓存等。6如何正确地将数据写入文件?否则会出什么问题?
  使用上下文管理器是关键。
  当你使用open没有上下文管理器的语句并且在关闭文件之前发生一些异常时(关闭文件是你在以这种方式打开文件时必须记住的事情)可能会发生内存问题并且文件可能会在此过程中损坏。
  当你with用来打开一个文件并且发生异常时,Python保证该文件是关闭的。d{foo:1}badpracticefopen(。data。csv,wb)f。write(somedata)vd〔bar〕KeyErrorf。close()neverexecuteswhichleadstomemoryissuesf。close()goodpracticewithopen(。data。csv,wb)asf:f。write(somedata)vd〔bar〕pythonstillexecutesf。close()eveniftheKeyErrorexceptionoccurs7函数参数是按引用传递还是按值传递?
  在Python中,所有函数参数都是通过引用传递的:这意味着如果将参数传递给函数,则函数将获得对同一对象的引用。
  如果对象是可变的并且函数改变了它,则参数将在函数的外部范围内发生变异。让我们看一个例子:defappendnumber(numbers):numbers。append(5)numbers〔1,2,3,4〕print(fbefore:{numbers}〔1,2,3,4〕appendnumber(numbers)numbers〔1,2,3,4,5〕8如何覆盖对象的打印方式?
  使用thestr和reprdunder方法。
  这是一个示例,它演示了Person类中的实例在打印到控制台时如何被很好地格式化。classPerson:definit(self,firstname,lastname,age):self。firstnamefirstnameself。lastnamelastnameself。ageagedefstr(self):returnf{self。firstname}{self。lastname}({self。age})defrepr(self):returnf{self。firstname}{self。lastname}({self。age})personPerson(John,Doe,30)thankstostrJohnDoe(30)personthankstoreprJohnDoe(30)9编写一个计算整数n阶乘的函数
  递归是关键deffactorial(n):ifn0:return1else:returnnfactorial(n1)10is和运算符有什么区别?
  是一个测试相等性的运算符,而is是一个测试身份的运算符。
  两个对象可以具有相同的值,但不一定相同(即具有相同的内存地址)。
  请记住,这aisb是id(a)id(b)。11什么时候不应该使用assert语句?
  assert语句对于内部测试和完整性检查很有用。
  但是,它不应该用于执行数据验证或错误处理,因为出于性能原因,它通常在生产代码中被禁用。
  想象一下,如果你使用断言检查管理员权限:这可能会在生产中引入很大的安全漏洞。
  assert你可以抛出自定义错误,而不是使用该语句。Dangerouscode!defdeleteproduct(user,productid):assertuser。isadmin()user。deleteproduct(productid)Handlethisproperlybyraisinganerrordefdeleteproduct(user,productid):ifnotuser。isadmin():raiseAuthError(Usermusthaveadminprivileges)else:user。deleteproduct(productid)12什么是Python生成器?
  Python生成器是一个生成一系列项目的函数。
  生成器看起来像典型的函数,但它们的行为是不同的。对于初学者,不使用return语句,而是使用yield语句。
  然后,调用生成器函数不会运行该函数:它只会创建一个生成器对象。生成器的代码仅在next函数应用于生成器对象或生成器被迭代时执行(在这种情况下,next函数被隐式调用)
  在生成器对象上调用函数的次数next等于yield在生成器函数中调用语句的次数。
  你可以使用for循环或生成器表达式定义生成器。defrepeat(n,message):forinrange(n):yieldmessagerepeathellofivetimesrepeat(5,hello)formessageinrepeathellofivetimes:print(message)hellohellohellohellohellorepeathellofivetime(helloforinrange(5))repeathellofivetimesgeneratorobjectgenexprat0x7fb64f2362d0formessageinrepeathellofivetimes:print(message)hellohellohellohellohello13类方法和静态方法有什么区别?什么时候应该使用哪个?
  静态方法是一种对调用它的类或实例有任何了解的方法。这是一种逻辑上属于该类但没有隐式参数的方法。
  可以在类或其任何实例上调用静态方法。
  类方法是传递给调用它的类的方法,就像self传递给类中的其他实例方法一样。类方法的强制参数不是类实例:它实际上是类本身。
  类方法的一个典型用例是提供另一种构造实例的方法:执行此操作的类方法称为类的工厂。
  这是一个使用类方法的Employee类,该类方法创建实例的方式与类的主构造函数略有不同。classEmployee(object):definit(self,firstname,lastname):self。firstnamefirstnameself。lastnamelastnaleclassmethoddeffromstring(cls,namestr):firstname,lastnamemap(str,namestr。split())employeecls(firstname,lastname)returnemployeeahmedEmployee。fromstring(AhmedBesbes)14举一个例子说明你如何使用zip和枚举
  该zip函数将多个迭代作为输入并将它们聚合到一个元组中。例如,如果你想同时遍历两个列表,这可能很有用。names〔john,bob,alice〕ages〔10,16,20〕forname,ageinzip(names,ages):print(name,age)john10bob16alice20
  该enumerate函数允许循环遍历一个可迭代对象并同时访问正在运行的索引和项目。names〔john,bob,alice〕forindex,nameinenumerate(names):print(index,name)0john1bob2alice15你会如何在给定的函数中使用args和kwargs?
  args和kwargs通过接受可变数量的参数使Python函数更加灵活。args在列表中传递可变数量的非关键字参数kwargs在字典中传递可变数量的关键字参数
  这是一个函数示例,该函数采用可变数量的关键字参数,这些参数收集在名为的字典中data(请注意,它不需要命名kwargs)
  16给出一个使用map的函数式编程示例numbers〔1,2,3,4,5〕numberstimes2list(map(lambdan:n2,numbers))numberstimes2〔2,4,6,8,10〕17continue和break语句有什么区别
  该break语句终止包含它的循环。程序立即移动到循环外部范围内的代码段。
  另一方面,该continue语句跳过当前迭代的其余代码并移至下一个迭代。
  18如何防止函数被调用不必要的时间?
  使用缓存。
  如果与给定输入关联的输出在一段时间内没有变化,则使用缓存对函数有意义。
  一个典型的场景是查询一个web服务器:如果你第一次查询一个URL,并且你知道响应不会改变,你可以缓存结果。fromcachetoolsimportcached,TTLCachecacheTTLCache(maxsize100,ttl86400)cached(cache)defextractarticlecontent(url):responserequests。get(url)contentresponse。contentreturncontent19给出一些PEP8指南每个缩进级别使用4个空格。进口应按以下顺序分组:标准库导入。相关第三方进口。本地应用程序库特定的导入。函数名和变量名应为小写并用下划线分隔类名使用CapWords约定。20如何使用具有2GBRAM的计算机在Python中读取8GB文件?
  此解决方案适用于任何大型(甚至更大)文件。
  当你打开文件时,你需要做的就是将文件对象用作迭代器:在循环此文件对象时,你将一次获取一行,并且前面的行将从内存中清除(即它们是垃圾收集)。
  这样,文件将永远不会完全加载到内存中。withopen(。largedataset。txt)asinputfile:forlineininputfile:processline(line)感谢阅读
  这是我在面试中经常看到的一些问题的概述。我希望你从文章中学到了一些东西。20个Python面试题来挑战你的知识

迪奥戴妃包真的爱了,一定要买买买职场女强人除了要有自身过硬的专业能力,也要注重自己的穿衣搭配,提升格调,彰显优雅大方,迪奥戴妃包是一款提升气质的绝佳单品。LADYDIOR黑色哑光牛皮革藤格纹迷你手袋这款黑色藤格纹上市银行半年报大乱斗,涉房贷款降不下来?图片来源视觉中国文一号企业家,作者楚翼2022年上市公司半年报陆续完成披露,各行各业参差不齐,比如营收王一如既往归两桶油,营收增幅最高的则是创业板次新股华兰疫苗,营业收入增速达96欢乐颂3露西的神秘背后,却是这么惨的一段经历这个女孩也太厉害了,一招就制服了这个偷窥狂,她叫露西,也是欢乐颂小区二十二楼的住户,露西与同住在二十二楼的四个小姐姐不同,相比较而言她更为高冷神秘,每次出门遇到几个姐妹都是冷冷淡淡77天赋佳琦天赋教育探索之水晶的黄战士今天是2022年8月22。今天是超频黄战士天赋的日子。超频黄战士天赋组合的孩子有什么样的天赋特质呢?我们来解读黄战士天赋的孩子主天赋黄战士黄战士天赋的孩子很有质疑的精神,对不懂的事子宫憩室危害大,应该怎样处理它?前几天飒姐写了一篇关于剖宫产的文章,没想到,评论区齐刷刷出现了这样一大堆留言,纷纷表示想让我写同一个内容,那就是剖宫产瘢痕憩室!既然大家都想看,飒姐我就是晚上加班也要写出来,如果觉猫哥大家不要焦虑,未来我们的孩子面临的环境是完全不一样的昨天与一个朋友聊天,就聊到孩子教育问题,朋友就在那里感叹现在的孩子太不容易了。比如他就一个女儿,今年8岁,女孩的母亲在这个暑假报了很多培训班,画画书法跳舞英语,最后还给报了一个奥数孩子早睡,真的会影响生长发育吗?是否认同?头条创作挑战赛现实生活中,很多家长都会觉得宝宝睡得太晚,会影响长高。到点了,就赶紧上床睡觉9点11点,是人体生长发育激素分泌最旺盛的时候,如果睡得太晚,就会错过分泌期,导致长不高的艾尔登法环史诗级优化补丁我那么大一黄金树呢?黄金树拒绝了一切。众所周知,褪色者想要成为艾尔登之王,一路上自然与黄金树脱不了关系。无论是迎击大树守卫,还是咳咳,虽然发售已经很久了,但可能还有没完全了解剧情或通关的玩家,这里就不罗技与腾讯合作开发云游戏掌机罗技官方宣布与腾讯达成合作,双方将于今年晚些时候推出一款云游戏掌机,支持多种云游戏服务,PC级3A大作都能玩。罗技官方没有公布与腾讯合作的掌机具体细节,只是表示该产品将充分发挥罗技梦幻西游全服第1神佑法暴斧子出炉,老王打造175极限五开大家好,我是如风,资深老玩家给你带来关于梦幻的故事!(原创码字抵制抄袭,感谢关注点赞)第1神佑法暴出炉!新出160级第一神佑法暴斧子,初伤602点,法术暴击几率加了0。94。随着1梦幻西游10开职业玩家,把任务安排得妥妥当当,月收入过万在梦幻西游里面玩五开刷任务是可以赚钱的,对于职业玩家来说,努力一点的话,一个月赚个三五千是没有问题的。但真正的职业玩家一般不仅仅玩一组五开,可能是玩10开,甚至20开在同时刷任务。
碰到回头率高的美女,我总是想多看几眼,我算心理阴暗或有病吗?碰到回头率高的美女,总想多看几眼,是心理阴暗或有病吗?其实不然,爱美之心人皆有之,无论男女,都应如此。尤其是异性之间,表现得最为明显,每当遇到有气质漂亮的异性,自然而然就流露出一种杜兰特未来的职业生涯,能够达到怎样的高度?杜兰特进攻华丽,完美契合这个时代,是最符合这个时代对小前锋定位要求的锋线球员。但因为跟腱断裂的缘故,使得杜兰特原本光明的职业生涯打了一个问号。科比,考辛斯为例都没有挣脱跟腱断裂的魔华为p50可以魔改5G射频芯片来支持5G吗?文小伊评科技一句话想多了,有这功夫你都可以自己生产一部手机了。想要完成这个烁古烁今的工程,你需要经过如下几个流程,这几个流程如果你有一步做错了,都要重头再来。Step1你需要找到能汽车五座可座5个大人,1个小孩不能超过几岁呢?私家车载客人数是以行车证上标明的载客人数为准。在交通法关于超员的有关规定中,并没有对乘车人的身高体重年龄等做出规定,只规定了人数,所以你的五座车只能坐五个人,无论孩子几岁都必须在五有低保的一级残疾人多大年龄可以领养老金?一级残和多大年龄领取养老金是两码事,一二级残属于重度残,本身就有残疾人护理补贴的,如果生活困难达到低保标准的,可以申请低保,这样又多了残疾人生活补贴和低保金。至于什么何时领养老金,东风标致408卡罗拉速腾,哪一款比较好?从你的描述来看,你是很注重性价比的。那么408是最好的选择。速腾这个价位只能买到1。6升自舒,要看当地的优惠了。不过自然吸气发动机保养便宜。速腾这款车很中庸,无论从外观还是内饰来看你怎么评价电影夏洛特烦恼里的王老师?世界上没有真正无私的人,也没有真的坏到骨子里的人,我想这就是对王老师这个角色最好的定义。王老师的出场充满戏剧效果秋雅的婚礼上被一群多年不见的学生围绕,一副桃李满天下的景象,但是在认你见过最贴切最有趣最有故事的门面招牌是什么?吃食堂2016年暑假,我们单位要组织团建活动。大轿子竟给我们拉到了二百四十里外的一个地方。这地方可真偏,也真落后,估计落后个50年吧。车一停下,就到了一个工程场地,门口树一大招牌,六七十年代,在农村看露天电影是什么场面?什么场面?非常激动人心,场面壮观热闹。首先是学生和小孩,只要听说哪天公社放电影队在什么地方在放电影,高兴得奔走相告,生怕别人不知道,如果在本队队,那天下午放学是不会在学校里和路逗留90年代风靡中国的保龄球,为什么突然之间销声匿迹?我来回答!保龄球不是什么人都能打的,一个球挺重,力气小跟本就拿起来打两下就没劲了。球道的长度也不短,如果没力气很难打中球的!进保龄球管,我们都要穿球道要求穿的鞋。所以有些人就不愿打50年以后若把李连杰,成龙,周星驰,周润发的电影各选10部出来重新搬上荧幕,谁的票房会最高?如果50年后,四人各选10部电影,进行票房排名,排名顺序如何,取决于三个因素1。经典作品的数量2。社会主流价值观3。资源稀缺性。从这几个围度看,我的排名如下第一名李连杰他的经典作品
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网