python 面试题集锦(附答案)

python 面试题集锦(附答案)

  1. 谈谈对 Python 和其他语⾔的区别?

答:Python 是⼀⻔语法简洁优美,功能强⼤⽆⽐,应⽤领域⾮常⼴泛,具有强⼤完备的第三⽅库,他是⼀ ⻔强类型的可移植、可扩展,可嵌⼊的解释型编程语⾔,属于动态语⾔。 拿 C 语⾔和 Python ⽐: Python 的第三⽅类库⽐较⻬全并且使⽤简洁,很少代码就能实现⼀些功能, 如果⽤ C 去实现相同的功能可能就⽐较复杂。但是对于速度来说 Python 的运⾏速度相较于 C 就⽐较 慢了。所以有利的同时也有弊端,毕竟我们的学习成本降低了。

  1. 简述解释型和编译型编程语⾔ ?

答:解释型语⾔是在运⾏程序的时候才翻译,每执⾏⼀次,要翻译⼀次,效率较低。 编译型就是直接 编译成机型可以执⾏的,只翻译⼀次,所以效率相对来说较⾼。

  1. Python 的解释器种类以及相关特点?

答:CPython c 语⾔开发的,使⽤最⼴的解释器 IPython 基于 cPython 之上的⼀个交互式计时器,交互⽅式增强功能和 cPython ⼀样 PyPy ⽬标是执⾏效率,采⽤ JIT 技术。对 Python 代码进⾏动态编译,提⾼执⾏效率 JPython 运⾏在 Java 上的解释器,直接把 Python 代码编译成 Java 字节码执⾏ IronPython 运⾏在微软 .NET 平台上的解释器,把 Python 编译成 . NET 的字节码。

  1. Python3 和 Python2 的区别?

答: 这⾥例举 几 条(想起继续更新)

1.print 在 Python3 中是函数必须加括号,Python2 中 print 为 class。 

2. Python2 中使⽤ xrange,Python3 使⽤ range。 

3. Python2 中默认的字符串类型默认是 ASCII,Python3 中默认的字符串类型是 Unicode。 

4. Python2 中/的结果是整型,Python3 中是浮点类型。 

5. Python2 中声明元类:_metaclass_ = MetaClass,Python3 中声明元类:classnewclass(metaclass=MetaClass):pass。

6.对于多线程模块threading 中的Thread 命名进行了修改;

7.python2 中的range(10)直接生成一个列表;但是在python3中生成的是一个生成器,减少占用内存;
  1. Python3 和 Python2 中 int 和 long 区别?

答:Python2 有 int 和 long 类型。int 类型最⼤值不能超过 sys.maxint,⽽且这个最⼤值是平台相关 的。可以通过在数字的末尾附上⼀个L来定义⻓整型,显然,它⽐ int 类型表示的数字范围更⼤。在 Python3 ⾥,只有⼀种整数类型 int,⼤多数情况下,和 Python2中的⻓整型类似。

  1. xrange 和 range 的区别?

答:xrange 是在 Python2 中的⽤法,Python3 中只有 range xrange ⽤法与 range 完全相同,所不 同的是⽣成的不是⼀个 list 对象,⽽是⼀个⽣成器。

  1. 什么是 PEP8 ?

答:PEP8 通常会听别⼈提到,但是具体的指什么内容呢,简单介绍下。 《Python Enhancement Proposal #8》(8 号 Python 增强提案)⼜叫 PEP8,他针对的 Python 代码格式⽽编订的⻛格指 南。

  1. 了解 Python 之禅么?
    答:通过 import this 语句可以获取其具体的内容。它告诉⼤家如何写出⾼效整洁的代码。

  2. Python 中的注释有⼏种?

答:总体来说分为两种,单⾏注释和多⾏注释。
单⾏注释在⾏⾸是 #。
多⾏注释可以使⽤三个单引号或三个双引号,包括要注释的内容。

  1. 例举你知道 Python 对象的命名规范,例如⽅法或者类等

答:类:总是使⽤⾸字⺟⼤写单词串,如 MyClass。内部类可以使⽤额外的前导下划线。 变量:⼩写,由 下划线连接各个单词。⽅法名类似 常量:常量名所有字⺟⼤写 等 (驼峰法……)

  1. 如何优雅的给⼀个函数加注释?

答:可以使⽤ docstring 配合类型注解

  1. 如何给变量加注释?

答:可以通过变量名:类型的⽅式如下

a: str = "this is string type"
  1. Python 代码缩进中是否⽀持 Tab 键和空格混⽤。

答:不允许 tab 键和空格键混⽤,这种现象在使⽤ sublime 的时候尤为明显。 ⼀般推荐使⽤ 4 个空格替代 tab 键。

  1. 是否可以在⼀句 import 中导⼊多个库?

答:可以是可以,但是不推荐。因为⼀次导⼊多个模块可读性不是很好,所以⼀⾏导⼊⼀个模块会⽐较 好。同样的尽量少⽤ from modulename import *,因为判断某个函数或者属性的来源有些困难,不 ⽅便调试,可读性也降低了。

  1. 在给 Py ⽂件命名的时候需要注意什么?

答:给⽂件命名的时候不要和标准库库的⼀些模块重复,⽐如 abc。 另外要名字要有意义,不建议数 字开头或者中⽂命名。

16.Python 垃圾回收机制?

答:Python 不像 C++,Java 等语⾔⼀样,他们可以不⽤事先声明变量类型⽽直接对变量进⾏赋值。对 Python 语⾔来讲,对象的类型和内存都是在运⾏时确定的。这也是为什么我们称 Python 语⾔为动态类型 的原因。 主要体现在下⾯三个⽅法:
1.引⽤计数机制 2.标记-清除 3.分代回收

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115135.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数列极限定义的具体解释(举例)–十分易懂

    数列极限定义的具体解释(举例)–十分易懂数列极限定义的具体解释(举例)–十分易懂自己看书没彻底明白,百度了几个还不错的解释。直接上图吧!这里重点看举例这个解释很好理解了。2.下面的另一种解释指出了N是项数并配图例。如果朋友们还有更好的理解方法,欢迎留言哦!谢谢…

    2022年5月2日
  • idea怎么集成git(idea中git的使用)

    一、IDEA集成git方法   首先idea集成git我们需要先下载一个小软件,gitbash 地址:https://git-scm.com/downloads 。下载好了之后直接下一步下一步傻瓜试安装。安装好后回在你指定的文件夹下有个git文件夹,文件结构如下:当然如果你对git命令比较熟悉,用这个软件就可以实现所有的git操作了。下面我们来集成进IDEA开发工具。打开I…

    2022年4月18日
  • Intellij IDEA创建Maven Web项目

    Intellij IDEA创建Maven Web项目

    2021年12月5日
  • 香农编码熵怎么算_香农范诺编码

    香农编码熵怎么算_香农范诺编码一、香农编码的概念概念:香农编码是是采用信源符号的累计概率分布函数来分配字码的。香农编码是根据香农第一定理直接得出的,指出了平均码长与信息之间的关系,同时也指出了可以通过编码使平均码长达到极限值。香农第一定理是将原始信源符号转化为新的码符号,使码符号尽量服从等概分布,从而每个码符号所携带的信息量达到最大,进而可以用尽量少的码符号传输信源信息。香农编码属于不等长编码,通常将经常出现的

    2022年9月10日
  • 服务自启动设置_服务器设置启动项

    服务自启动设置_服务器设置启动项一、linux下的服务分类RPM包默认安装的服务这些服务是通过RPM包安装的,可以被服务管理命令识别。又分为两种子分类:1)独立的服务:就是独立启动的意思,这类型的服务可以自行启动,而不

    2022年8月3日
  • python列表求平均值是什么函数(python平均值函数是什么)

    php中post和get的区别是什么?_后端开发php中post和get的区别是:1、post更安全并且发送的数据量更大;3、post能发送更多的数据类型,get只能发送ASCII字符;4、post是向服务器传送数据,get是从服务器上获取数据。5、get会缓存数据,而post不会。推荐教程:《python视频教程》python如何求列表平均值?python函数求列表平均值的方法:用法:mean(…

    2022年4月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号