公众号:吾非同,回复“面试宝典”获取python最新面试宝典。

1.python2和python的区别?列举至少五个

  • Python 2中的print语句被Python 3中的print()函数取代,在Python 3中必须用括号将需要输出的对象括起来;

  • Python 2有基于ASCII的str()类型,其可通过单独的unicode()函数转成unicode类型,但没有byte类型。

    在Python 3中,终于有了Unicode(utf-8)字符串,以及两个字节类:bytes和bytearrays。

  • Python2.x中有xrange()和range(),xrange()是惰性机制的,如果只循环一次建议使用range(),对此的话range()会在内存中创建多尔列表,内存开销较大。

    python3中只有range(),range有了一个新的__contains__方法。__contains__方法可以有效的加快Python 3.x中整数和布尔型的“查找”速度。

  • 异常处理,在python3.x中必须使用‘as‘来处理, python2.x中可以不必使用。

  • 在python2.x 中.Next()函数可以作为函数的属性使用,也可以单独作为函数使用;

    在python3.x 中只能使用函数,使用。Next()会触发attributeError.

  • python2.x中使用raw_input()解析用户输入,在python3.x 中使用input()解析。

2.python 内建数据类型有哪些

  • 整型–int
  • 布尔型–bool
  • 字符串–str
  • 列表–list
  • 元组–tuple
  • 字典–dict

3.提高python运行效率的方法

  • 使用生成器,因为可以节约大量内存。
  • 循环代码优化,避免过多重复代码的执行。
  • 核心模块用Cython PyPy等,提高效率。
  • 多进程、多线程、协程。
  • 多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率。

4.什么是PEP8?

《Python Enhancement Proposal #8》 (8号python增强提案)又叫PEP8,他针对的python代码格式而编订的风格指南。

5.有哪些工具可以帮助debug或做静态分析?

  • PyChecker是一个静态分析工具,它不仅能报告源代码中的错误,并且会报告错误类型和复杂度。
  • Pylint是检验模块是否达到代码标准的另一个工具。

6.Python 里面如何实现 tuple 和 list 的转换?

直接使用 tuple 和 list 函数就行了,type()可以判断对象的类型。

7.请写出一段 Python 代码实现删除一个 list 里面的重复元素。

使用 set 函数

set(list)

使用字典函数

a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)
c=list(b.keys())
print(c)

8.Python 里面如何生成随机数?

在Python中用于生成随机数的模块是random,在使用前需要import。
举例:

  • random.random():生成一个0-1之间的随机浮点数
  • random.randint(a,b):生成[a,b]之间的整数,包含a,b
  • random.uniform(a,b):生成[a,b]之间的浮点数
  • random.randrange(a,b,step):在指定的集合[a,b)中,以step为基数随机取一个数,不含b
  • random.choice(sequence):从特定序列的中随机取一个元素,这里的序列可以是字符列表,元组等。

9.Python中的pass是什么?

pass是一个在Python中不会被执行的语句。在复杂语句中,如果一个地方需要暂时被留白,它常常被用于占位符。

10.字符串格式化:%和.format的区别

字符串的format函数非常灵活,很强大,可以接受的参数不限个数,并且位置可以不按顺序,而且有较为强大的格式限定符(比如:填充,对齐,精度等)

11.简要描述Python的垃圾回收机制(garbage collection)

Python中的垃圾回收是以引用计数为主,标记-清除分代收集为辅。

  • 引用计数:Python在内存中存储每个对象的引用计数,如果计数变成0,该对象就会消失,分配给该对象的内存就会释放出来。
  • 标记-清除:一些容器对象,比如list、dict、tuple,instance等可能会出现引用循环,对于这些循环,垃圾回收器会定时回收这些循环(对象之间通过引用(指针)连在一起,构成一个有向图,对象构成这个有向图的节点,而引用关系构成这个有向图的边)。
  • 分代收集:Python把内存根据对象存活时间划分为三代,对象创建之后,垃圾回收器会分配它们所属的代。每个对象都会被分配一个代,而被分配更年轻的代是被优先处理的,因此越晚创建的对象越容易被回收。

12.简述面向对象中newinit区别?

1、__new__至少要有一个参数 cls,代表当前类,此参数在实例化时由Python解释器自动识别。
2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以 return 父类(通过 super(当前类名, cls))__new__出来的实例,或者直接是 object 的__new__出来的实例。
3、__init__有一个参数 self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值。
4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过 return 语句里面调用的__new__函数的第一个参数是 cls 来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。

13.列出 Python 中可变数据类型和不可变数据类型,为什么?

1、可变数据类型:list、dict、set
2、不可变数据类型:int/float、str、tuple
原理:可变数据类型即公用一个内存空间地址,不可变数据类型即每产生一个对象就会产生一个内存地址。

14.python 中交换两个数值

a,b=1,2
a,b=b,a

15.遇到 bug 如何处理

  • 简单直接、粗暴有效的就是用print()把可能有问题的变量打印出来看看。
  • 凡是用print()来辅助查看的地方,都可以用断言(assert)来替代。
  • 把print()替换为logging是第三种方式,和assert比,logging不会抛出错误,而且可以输出到文件。
  • 启动python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态。

16.使用 pop 和 del 删除字典中的"name"字段,dic={“name”:“zs”,“age”:18}

dic = {"name": "zs", "age": 18}
dic.pop('name')
del dic['age']
print(dic)

17.列出几种魔法方法并简要介绍用途

__init__:对象初始化方法
__new__:创建对象时候执行的方法,单列模式会用到
__str__:当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
__del__:删除对象执行的方法

18.请说明 sort 和 sorted 对列表排序的区别

  • sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
  • sorted(L)返回一个排序后的L,不改变原始的L,L.sort()是对原始的L进行操作,调用后原始的L会改变,没有返回值;所以a = a.sort()是错的啦!a = sorted(a)才对。
  • sorted()适用于任何可迭代容器,list.sort()仅支持list(本身就是list的一个方法),sorted使用频率比list.sort()更高些,所以Python中更高级的排序技巧便通过sorted()来演示

19.Python 字典和 json 字符串相互转化方法

    import jsondic = {"name":"zs"}res = json.dumps(dic)print(res,type(res))ret = json.loads(res)print(ret,type(ret))

20、is和==区别?

is:比较两边的内存地址是否相等,是比较两个引用是否指向了同一个对象(引用比较)

==:比较两边的数值是否相等。

Python经典面试题|Python面试宝典相关推荐

  1. C语言经典面试题及面试宝典

    声明:文章转自 https://blog.csdn.net/qq_26093511/article/details/78874424 1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又 ...

  2. python经典面试题100例 面试宝典

    人生苦短 我用 Python 芝麻开门! python 进阶 1 python 经典面试题 9 python 面试 100 例 21 python 面试题总结 101 python 进阶 1 PEP8 ...

  3. 21道Python经典面试题,助你offer拿到手软!

    导读:又到"金九银十"招聘黄金季,21道Python经典面试题助你offer拿到手软,收好不谢! 01 Python如何实现单例模式? Python有两种方式可以实现单例模式,下面 ...

  4. 必读!53个Python经典面试题详解

    作者 | Chris 翻译 | 苏本如,编辑 | 夕颜 题图 | 视觉中国 出品 | AI科技大本营(ID:rgznai100) 本文列出53个Python面试问题,并且提供了答案,供数科学家和软件工 ...

  5. 用python画奥迪标志_不知道不 OK!53 个 Python 经典面试题详解

    作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...

  6. 不知道不 OK!53 个 Python 经典面试题详解

    作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...

  7. Python经典面试题:说说Python中xrange和range的区别?

    昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...

  8. Python经典面试题100道(附PDF下载地址)

    最近肝了一个月,整理了下经典的 Python 经典习题 100 道,有基础的,也有进阶的,用习题来巩固知识点,不枯燥,为了方便大家查阅,我把这 100 道题整理成了 PDF 文档,大家可以下载到电脑或 ...

  9. python基础知识面试题-Python基本面试解答由浅入深—简答题

    原标题:Python基本面试解答由浅入深-简答题 不管你是学习任何语言,不管你是刚毕业还是行业大佬,找工作最终逃不掉的就是面试题,有的程序员很讨厌面试题,他们觉得面试题不会不代表我做不出东西,其实这种 ...

最新文章

  1. cllocationmanager 获取不了 的原因_我的世界:天启之境如何获取“人鱼手链”?一段人鱼姬的爱情故事...
  2. bash 不是内部或外部命令_Win10_cmd下提示:‘xxx’不是内部或外部命令,也不是可运行的程序 或批处理文件...
  3. 编程开源_立即注册免费的在线开源编程课程
  4. springMVC框架下JQuery传递并解析Json数据
  5. python第三库安装方法记录
  6. 系统学习深度学习(十四)--权重初始化Xavier
  7. Spice Windows Client 利用 USBDk 实现USB重定向
  8. 网站访问速度优化之二 - JS和CSS优化
  9. 红冲发票,负数发票,作废发票
  10. 国际直拨电话号码格式
  11. 天呐!惊人的Springboot测试.Springboot测试类之@RunWith注解
  12. 2020 GDUT Rating Contest III (Div. 2) B - Loan Repayment 题解
  13. win10隐藏任务栏_win10系统任务栏彰显个性的设置方法
  14. day---06 文件的操作
  15. 直流无刷电机及Matlab/Simulink驱动仿真
  16. .pdb文件的使用方法
  17. 【SparkSQL小文件的处理方式】
  18. Uncaught (in promise) TypeError: Cannot read property 'data' of undefined
  19. ThinkPHP3.1在PHP7下页面空白的解决方案
  20. [工具使用]BurpSuite

热门文章

  1. WIN10开机,内存占用80%以上的解决方案记录
  2. RTMP直播 浏览器通过jwplayer播放
  3. Metasploit -- 辅助模块(Auxiliary)
  4. 2019计算机复试平均分,19考研全国平均分公布,20考研难度分析!
  5. python安装Crypto
  6. JavaScript遍历一个table的tr
  7. 华硕幻16 2023星空版 GU604V 原厂Win11工厂模式带ASUSRecovery恢复功能
  8. C语言中通讯录的实现
  9. openlayers加载OSM地图出现白线
  10. SpringBoot+SpringSecurity前后端分离+Jwt的权限认证