秋招在即,值得收藏 |8道Python面试必知必会题

两个月搞定面试算法【小白leetcode刷题训练】【python专场】 前言 刷题顺序来自极客时间,共分为8个专题,每周1个,两个月认真刷完基本大厂面试OK(我说的是认真刷!只抄题解不算)。截止到博主结束秋招时只刷到第5个专题,也基本够用了。也就是说认真刷题的话一个月就可以有offer入手了。 当然现在BAT的笔试做起来还是觉得费力,笔试是真的难啊! 博主是python选手,题解都是python写的。有问题欢迎交流,共同进步。 文章内附leetcode链接,直接点链接去做就行。同类型的尽量整理到一起了,也方便自己今后复习。 推荐五遍刷题法 1、读题+思考,10分钟内没思路,直接 阅读详情

求职季在即,技巧千万条,硬实力才是关键,听说今年大环境不好,更要好好准备才行。最近通过对往期笔试面试题目的梳理,精选了8道比较有代表性的考察python语言特性方面的题目,在此分享给大家,希望能在各位的求职路上给予一点帮助。

01.

迭代器和生成器

题目举例:将列表生成式中[]改成() 之后数据结构是否改变。

参考解析:这道题目的关键不在于其答案,而是背后的迭代器和生成器的概念。

  • 迭代器是遵循迭代协议的对象,用户可以使用 iter() 以从任何序列得到迭代器(如 list, tuple, dictionary, set 等)。

  • 生成器(Generator),只是在需要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)。

生成器能做到迭代器能做的所有事,而且因为自动创建iter()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出StopIteration异常。

回到上面的问题,将列表生成式中[]改成() 之后数据结构是否改变呢?答案:是,因为从列表(迭代器)变为生成器,代码如下:

640?wx_fmt=png

02.

关于装饰器

题目举例:手写一个判断时间的装饰器。

参考解析:很明显,这道题目的考察重点是python的又一经典特性——装饰器。装饰器本质上是一个callable object,它可以在让其他函数在不需要做任何代码的变动的前提下增加额外的功能,其返回值也是一个函数的对象,经常用于有切面需求的场景,比如插入日志,性能测试,事务处理,缓存等等。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

对于上面这道题目,给出以下参考代码:

640?wx_fmt=png

如果没有装饰器,执行test("backbp")的返回结果应该是Hello backbp, 2020 Happy,但是在函数timecheck中,我们对当前时间的年份进行了判断,相当于给test函数增加了额外的功能。结果很明显,今年是2019年而非2020,因此就得到了上面的输出结果。

03.

猴子补丁

题目举例:Python中的猴子补丁是什么?

参考解析:猴子补丁仅指在运行时动态改变类或模块,即函数在python中可以像使用变量一样对它进行赋值等操作,为的是将第三方代码打补丁在不按预期运行的bug或者feature上,适用于python这种动态语言。

例如下面这段代码运行后会执行MyClass中的func函数。

640?wx_fmt=png

现在我们在上面代码的基础上再添加两行代码:

MyClass.func = ClassName.monkey_func
obj.func()

再次执行会发现输出结果变为了'monkey_func',在这个过程中我们通过对MyClass.func重新赋值,动态的改变了输出的结果。

04.

==和is

题目举例:说明Python中==和is的区别。

参考解析:is是判读对象标识符是否一致,而==是判读两个对象的内容是否相等!

  • x is y 相当于 id(x)==id(y)

  • ==是检查两个对象的内容是否相等,会调用对象的内部__eq__()。

例如下面这段代码,虽然a和b的值是相同的,但是二者是不同的两个对象,因此使用is比较得到的结果是False。

640?wx_fmt=png

05.

浅拷贝和深拷贝

题目举例:对python中的深拷贝和浅拷贝进行说明。

参考解析:Python中对象的赋值实际上是简单的对象引用,也就是说当你创建一个对象,然后把它赋值给另一个变量的时候,Python并没有拷贝这个对象,而是调用了这个对象。而真正的拷贝分为浅拷贝和深拷贝两种。

浅拷贝一般使用copy.copy(),可以进行对象的浅拷贝,但是不会拷贝对象内部的子对象。例如:

640?wx_fmt=png

上面这段代码中,使用copy对origin进行浅拷贝,cop复制了origin的对象,但是cop里面的[3, 4]和origin里面的[3,4]其实都是指向同一块内存地址,所以改变了origin[2][0]之后,cop里面的内容也发生了改变!

深度拷贝需要用copy.deepcopy()进行,它会复制整个对象,以及它里面的所有子对象,例如:

640?wx_fmt=png

当使用深度拷贝后,cop和origin已经是两个完全独立的对象,其中的元素及子元素都指向不同的内存地址,因此无论origin如何变化,cop都不会随之改变。

06.

可变类型和不可变类型

题目举例:说明python中可变类型和不可变类型的区别,并举例。

参考解析:可变类型传递的是内存中的地址,也就是说当进行修改操作时,会直接修改内存中的值,并没有开辟新的内存,可变类型的代表有list,dict。例如:

640?wx_fmt=png

在上这段代码中,我们对lst进行了append操作,虽然lst的值改变了,但是其内存地址并没有发生变化。

不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作,其代表有string,number,tuple。例如:

640?wx_fmt=png

可见,对字符串s进行操作后,其内存地址也随之发生了改变。

07.

Python的自省功能

题目举例:简要说明什么是python的自省特性。

参考解析:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是运行时能够获得对象的类型,比如type()、dir()、getattr()、hasattr()、isinstance()等方法。

例如下面这段代码中,type函数返回的是变量的数据类型,isinstance判断变量(参数1)是否属于某数据类型(参数2),dir函数则会返回参数的属性、方法列表。

640?wx_fmt=png

08.

Python中的下划线

题目举例:对python中的三种下划线形态_foo、__foo、__foo__进行说明。

参考解析:python中不同的下划线组合具有不同的含义。

  • 前置单下划线形态_foo,这里的下划线是用来指定私有变量的一种方式,常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入。

  • 前置双下划线形态__foo,主要是为了区别和其他类相同的命名,避免该成员的名称与子类中的名称冲突。例如有有类class里有一成员 __x,那么 dir(class) 时会看到_Test__x而非__x。

  • 前后双下划线形态__foo__,定义的是Python 中的魔法对象,如类成员的__init__、__del__、__add__、__getitem__、全局的__file__、__name__等。

例如下面这段代码中,我们直接调取mc的__superprivate属性会提示MyClass这个类没有该属性,原因就是前置的双下划线对属性名称进行了限定。

640?wx_fmt=png

上面就是关于Python语言特性方面的8道题目,也是必知必会的题目了!希望对要参加秋招的同学能有一点帮助!若有什么问题,欢迎留言吱一声!

近期热门:

天下武功为快不破,戏说Python与Go高并发争锋!

太好玩了,我用Python写了个火影忍者版的连连看

这个干货值得看|用Python来初步探索黄金的最佳建仓时机

精心为学弟学妹准备的刷题笔记与代码规范,看完距大厂又近了一步!值得收藏! 一、算法 虽然网上流传一句话,面试造火箭,入职拧螺丝。 但毋庸置疑,算法是每个程序员必须掌握的基本功。是能力高低的分水岭,是大厂选拔人才的重要标准。 所以,即使只是为了面试笔试,也需要把算法学好,为大家整理了两份不错的资料,平时多刷刷题为面试笔试做点准备。 1、LeetCode101题解,点击下载 2、字节跳动50道高频算法,点击下载 LeetCode101题解作者高畅是谷歌无人车部门(Waymo)的工程师。 他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 阅读详情

相关推荐

110道python面试笔试题汇总.pdf

又是一年秋招季,110道python面试笔试题汇总,带答案,pdf版可下载打印,亲测有效。

2022年Python笔试选择题及答案(秋招)

1.以下关于 Python 的描述错误的是? A、Python 的语法类似 PHP B、Python 可用于 Web 开发 C、Python 是跨平台的 D、Python 可用于数据抓取(爬虫) 正确答案:C 2.Python 中,以下哪个函数是用于输出内容到终端的? A、echo B、output C、print D、console.log 正确答案:A 3.以下哪个符号是用作 Python 的注释? A、* B、(comment) C、// D、# 正确答案:D

weixin_43474701的博客 7968

Python从菜鸟到大神的100道经典练习题

Python从菜鸟到大神的100道经典练习题 Python从菜鸟到大神的100道经典练习题

【重磅】Python后端开发秋招笔试面试必备知识记录(持续更新中)

用HashMap的方式记录自己的技术栈,涵盖数据结构、算法、计算机网络、操作系统、数据库、Python语言特性、Linux、项目框架以及高级扩展知识和个人使用工具等 Github资源地址:https://github.com/honorwh/BD-Notes 【补充】有兴趣的留言或者向我申请笔记访问权限 待秋招结束再将所有复习笔记从印象笔记抽取整理出来!希望对大家有所帮助,一起加油! ...

honorwh的博客 557

关于获取CISP-PTE一些避坑经历

考场内是不允许携带外设键盘的,现场会至少有一个360安全专业人员监考.所有人电脑都会提前装一个奇安信的一个考试exe,刚开始的时候会让你连接一个WIFI,我们将会通过WIFI进行做题,做题期间你的电脑将被全程监控并且一些退出快捷键也是全部锁死(有点像勒索病毒那种界面),想要重启必须直接拔电源。中途可以上厕所,需要监考官陪同

6323

Windows-Anaconda3+TensorFlow安装教程

测试环境:win10-64位和win7-64位 (系统必须是64位,因为TensorFlow目前只支持64位) 一、安装Anaconda3 1.下载Anaconda3 Anaconda官网链接:link 这里我们选择Windows版本,python3.6-version-64位,如下图所示。 2.下载完成之后,点击安装Anaconda3 注意:安装过程中要选择添加环境变量,如图 待安装完成...

DoctorCuiLab的博客 3089

常见 python 面试题目整理

1.列举 Python2 和 Python3 的区别? (1)python3中将长整型全部归属为整形 (2)python3中将输出print语句变为print函数 (3)python3中将cmp去掉 (4)编码格式:python2中unicode是单独的,不是byte类型,python3中支持utf-8字符串,以及字节类 (5)除法:python2中浮点数除法会保留浮点数的小数部分 2.简述 Py...

cainiaoayue的博客 820

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3937

python应聘必会_秋招在即,值得收藏 |8道Python面试必知必会题

原标题:秋招在即,值得收藏 |8道Python面试必知必会题求职季在即,技巧千万条,硬实力才是关键,听说今年大环境不好,更要好好准备才行。最近通过对往期笔试面试题目的梳理,精选了8道比较有代表性的考察python语言特性方面的题目,在此分享给大家,希望能在各位的求职路上给予一点帮助。01.迭代器和生成器题目举例:将列表生成式中[]改成 之后数据结构是否改变。参考解析:这道题目的关键不在于其答案,而...

weixin_39762441的博客 175

【C++】C++异常语法、使用、规范、异常安全及异常的优缺点

实际中我们可以可以去继承exception类实现自己的异常类。但是实际中很多公司像上面一样自己定义一套异常继承体系。因为C++标准库设计的不够好用。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。C++ 提供了一系列标准的异常,定义在 中,我们可以在程序中使用这些标准的异常。异常是一种处理错误的方式,

weixin_51692487的博客 1525

100天精通Python(可视化篇)——第98天:Pyecharts绘制多种炫酷日历图参数说明+代码实战

一、日历图介绍 二、基础配置 1. 配置项类 2. 添加函数 3. 日期标签配置 4. 坐标系配置 三、日历图实战 1. 基础日历图 2. 日历热图

努力让自己发光,对的人才能迎着光而来 2万+

一个月带你狂刷算法Leetcode题,冲刺最后秋招!

号主推荐:你还在为大厂面试发愁吗?你还在为拿不到心仪的offer而不知所措吗?厉害了,老铁,这些大牛导师会带着你刷遍100道机器学习算法工程师的面试题目+Leetcode...

算法channel 2989

Altium Designer(AD24/25)导出DXF或DWG结构文件的方法

DXF(Drawing Exchange Format)和DWG(Drawing)是两种常见的CAD(计算机辅助设计)文件格式,常用于结构和硬件之间的沟通。本文介绍Altium Designer(AD24/25)导出DXF或DWG结构文件的方法。

fydar的博客 2345

2020我的秋招总结帖 [数据分析岗] | 面经集合

开个帖子,记录秋招漫漫路~

是圣洁呀✨ 2万+

199、影像技术 roadmap 规划:未来移动影像的技术趋势与芯片算力展望

本文探讨了未来移动影像技术的发展趋势与芯片算力规划。作者从实际案例出发,指出影像技术演进需平衡传感器、ISP、算力和功耗。文章分为三部分:1)传感器将从堆像素转向提升信息密度,重点关注双层晶体管结构、混合快门和多光谱技术;2)ISP架构将向可编程计算单元转型,强调神经网络加速、硬件化多帧融合和语义处理;3)芯片算力瓶颈在于数据搬运,需优化存算一体架构、专用DMA和统一内存。最后给出五点建议:避免盲目追高像素、重视持续功耗、平衡ISP灵活性、预留算力余量、加强传感器与ISP协同设计。作者强调,影像技术的突破在

sundong_81的博客 60

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

秋招总结_就业

【前言】以下内容是写给研二学弟学妹们的秋招总结,研一的师弟师妹们如有需要,也可看看。先说一下我为什么要写这个总结:1、时代在变化,社会在发展,一届有必要给下一届讲一些经验。2、我平时和你们沟通交流的比较少,所以我就采用文字的形式给大家讲讲我的总结。总结大致分为【岗位、地点、公司选择】、【简历相关】、【秋招时间流程】等几个部分。主要针对的岗位是开发岗和测开岗,对于其他岗位,大家可以参考一下网上其他同学的经验帖子。师兄我文笔真不行,写的内容比较乱,也有些啰嗦,但是真的希望这个总结能够帮到你们,希望大家都能找到一

HYSliuliuliu的博客 8433

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

秋招刷题|数据分析岗:30道Pandas高频考点全解析

项目的第一部分是基础与概念题,10道题覆盖了Pandas核心知识:两大数据结构Series和DataFrame的区别与应用场景。如何读取CSV、Excel(含多sheet)文件,解决编码问题。数据探索常用方法head()、info()、describe()的使用技巧。时间类型转换及时间特征提取方法。缺失值检测与处理(删除、填充、插值、KNN补全等)。每道题不仅有直接答案,还有详细解释+代码示例+业务扩展,让你不仅知其然,还能知其所以然。

Rikki1013的博客 933

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【秋招日寄】第一集:秋招萧瑟叹天涯,慌乱转行C++。 ——某个门外汉的C++求职江湖路

秋招找C++相关工作的一些碎碎念。有些对网安行业的思考,也有一些找工作的直观感受,随便写写。以此文纪念总结,亦使后来者以我为戒。

Bossfrank的博客 1889

软件测试【秋招面试】字节跳动等各类大厂——面经

先写到这里,收到一份面试机会不容易,尽量通过十分钟左右引导面试官提问,把自己的优势展现出来。特别是要把握反问环节,是你补充绝佳的机会!多面试,不太建议把第一次面试就献给你的梦中情厂,不值,通过每一次面试,多锻炼多分析多反思问题才能得心应手(甚至有面试官问我是不是面了二三十场了,说我老练极了就当在夸我吧哈哈哈哈)。

2301_80119299的博客 1021

秋招之路-值得纪念的日子!

[图]The Sunlight 2019-07-27这是herongwei的第 81篇原创阅读本文大概需要 6.66分钟前言昨天(2019.07.26)是值得纪念的一天,这一天,...

herongwei 的 BLOG 364

8.20更!24届提前批&秋招公司合集 收集400+秋招信息

我等,回去睡个午觉再准。双非一本,开学马上大四,大三下之前都是平常心,然后准备考研,准备一半发现自己并不是哪方面的料(数学太烂了),于是又转回来学技术,把自己当零基础开始学java,跟。本科某垫底C2,大学不懂事浑浑噩噩混过去了,没有实习经历,没有专利和奖项,保研失败,考研无望,八股不会,coding能力也很烂,眼看到了找工作的时候,开始海投简。

2301_79125642的博客 896

看完两位谷歌大佬的 Leetcode 刷题笔记,我直接手撕了 200 道 Leetcode 算法题

今天推荐两个大佬的刷题笔记,让你毫不费力的刷 LeetCode !一、LeetCode-Go截至 2020 年 11 月,该开源项目配套的网站已经有一百二十万的访问量,在 GitHub 上收获了 8500 颗小星星。 这个开源项目是@halfrost(中文名一缕殇流化隐半边冰,简称霜神)去年刷算法题时整理出的 520 题,每道题都写了解题思路,全部都是 GO 实现的,并且每题都 runtime b...

程序员吴师兄的博客 2654
上一篇: 漫画,开学季来临,用Python告诉你,女朋友应该从全国的哪个城市找
下一篇: 良心推荐:看完这5部BBC神级纪录片,英语水平提升几个Level!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值