2024年Python最新总结10大门类100道python面试题笔试题

本文详细介绍了提高Python运行效率的方法,包括使用生成器、循环代码优化、Cython等加速核心模块,处理bug的策略,以及Python的引用计数机制、PEP8编码规范、数据类型、函数与方法、面向对象编程、文件操作和多任务处理等内容,旨在帮助Python开发者提升技能。
摘要由CSDN通过智能技术生成
1.5 提高python运行效率的方法

1、使用生成器,因为可以节约大量内存

2、循环代码优化,避免过多重复代码的执行

3、核心模块用Cython PyPy等,提高效率

4、多进程、多线程、协程

5、多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

1.6 遇到bug如何处理

1、细节上的错误,通过print()打印,能执行到print()说明一般上面的代码没有问题,分段检测程序是否有问题,如果是js的话可以alert或console.log

2、如果涉及一些第三方框架,会去查官方文档或者一些技术博客。

3、对于bug的管理与归类总结,一般测试将测试出的bug用teambin等bug管理工具进行记录,然后我们会一条一条进行修改,修改的过程也是理解业务逻辑和提高自己编程逻辑缜密性的方法,我也都会收藏做一些笔记记录。

4、导包问题、城市定位多音字造成的显示错误问题

1.7 简述python引用计数机制

python垃圾回收主要以引用计数为主,标记-清除和分代清除为辅的机制,其中标记-清除和分代回收主要是为了处理循环引用的难题。

引用计数算法

当有1个变量保存了对象的引用时,此对象的引用计数就会加1

当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如3,那么此时只会让这个引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象进行删除

1.8 列举3条以上PEP8编码规范

1、顶级定义之间空两行,比如函数或者类定义。

2、方法定义、类定义与第一个方法之间,都应该空一行

3、三引号进行注释

4、使用Pycharm、Eclipse一般使用4个空格来缩进代码

二、python数据类型

=======================================================================

2.1 python内建数据类型有哪些
2.2 a=(1,)b=(1),c=(“1”) 分别是什么类型的数据?
2.3 python传参数是传值还是传址?
2.4 列出python中可变数据类型和不可变数据类型,并简述原理
2.5 python中交换两个数值
2.6 生成0-100的随机数
2.7 一行代码实现1–100之和
2.8 保留两位小数
2.9 a=“张明 98分”,用re.sub,将98替换为100
2.10 单引号、双引号、三引号用法
2.11 字符串转化大小写
2.12 用两种方法去空格 str = " what the problem"
2.13 避免转义给字符串加哪个字母表示原始字符串?
a="hello"和b="你好"编码成bytes类型
2.14 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
2.15 [1,2,3]+[4,5,6]的结果是多少?
2.16 list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]
2.17 python中生成随机整数、随机小数、0–1之间小数方法
2.18 s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"
2.19 x=“abc”,y=“def”,z=[“d”,“e”,“f”],分别求出x.join(y)和x.join(z)返回的结果
2.20 a = " hehheh ",去除收尾空格
2.21 1. python实现列表去重的方法(多种方法)
2.22 举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]
2.23 对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序
2.24 使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小
2.25 列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2.26 两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]
2.27 [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
2.28 请将[i for i in range(3)]改成生成器
2.29 列表嵌套元组,分别按字母和数字排序foo = [(“zs”,19),(“ll”,54),(“wa”,17),(“df”,23)]
2.30 列表嵌套列表排序,年龄数字相同怎么办?foo = [(“zs”,19),(“ll”,54),(“wa”,17),(“df”,23),(“xf”,23)]
2.31根据字符串长度排序
2.32 字典如何删除键和合并两个字典
2.33 字典根据键从小到大排序
2.34列表嵌套字典的排序,分别根据年龄和姓名排序foo = [{“name”:“zs”,“age”:19},{“name”:“ll”,“age”:54},{“name”:“wa”,“age”:17},{“name”:“df”,“age”:23}]
2.35 使用pop和del删除字典中的"name"字段,dic={“name”:“zs”,“age”:18}
2.36 python字典和json字符串相互转化方法
2.37 求三个方法打印结果
2.38 python中什么元素为假?
2.39 is和==有什么区别?

三、python函数和方法

========================================================================

3.1 如何在一个函数内部修改全局变量
3.2 递归求和
3.3 举例说明zip()函数用法
3.4 利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
3.6 filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3.7 fun(*args,kwargs)中的 * args, kwargs什么意思?
3.8 用lambda函数实现两个数相乘
3.9 python中断言方法举例
3.10 写一段自定义异常代码
3.11 举例说明异常模块中try except else finally的相关意义
3.12 IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常
3.13 python中copy和deepcopy区别
3.14 简述any()和all()方法

四、python面向对象

=======================================================================

4.1 一句话解释什么样的语言能够用装饰器?
4.2 简述面向对象中__new__和__init__区别
4.3 列出几种魔法方法并简要介绍用途
4.4 写一个单例模式

五、python文件操作

=======================================================================

5.1 简述with方法打开处理文件帮我我们做了什么?
5.2 用python删除文件和用linux命令删除文件方法
5.3 log日志中,我们需要用时间戳记录error,warning等的发生时间,请用datetime模块打印当前时间戳 “2018-04-01 11:38:54”
5.4 r、r+、rb、rb+文件打开模式区别

六、python多任务

======================================================================

6.1 谈下python的GIL
6.2 简述多线程、多进程
6.3 简述乐观锁和悲观锁

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值