python面试常见问题-Python面试中最常见的25个问题
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
Python是一个面向对象的解释型的交互式高级脚本语言。Python被设计成一种高可读性的语言,因为它大量地使用了英语中的单词作为关键字,而且不像其他语言使用标点符号构成复杂的语法结构,Python的语法结构非常少。
Python是一种解释型语言:即Python程序是在运行时由解释器解释执行的,因而不用事先编译源程序。这一点和Perl和PHP类似。
Python是一种交互式语言:即你能够在Python提示符下直接交互式地编写你的程序。
Python是一种面向对象的语言:即Python是支持面向对象(OO)的,支持在对象中进行代码封装。
Python是初学者的语言:Python是一种非常适合初学者的语言,它支持多种类型的应用程序的开发,如简单的文本处理、www浏览器应用程序开发、游戏开发等等。
1)什么是Python?使用Python的优点有哪些?
Python是一种带有对象、模块、线程、异常和内存自动管理的编程语言。使用Python的优点有:简单、易学、轻便可移植、可扩展、具有多种内建数据类型、开源等等。
2)什么事PEP 8?
PEP 8是一种编码规范,是一系列关于如何让Python代码更加具有可读性的编码建议。
3)什么是序列化(pickling)和反序列化(unpickling)?
Pickle模块允许我们将Python对象转换成一个string表示的信息,并且可以使用dump函数将其保存到一个文件中去,这样的过程称为序列化。而使用文件中保存的对象信息重构Python对象的过程称为反序列化。
4)Python是如何被解释执行的?
Python是一种解释型语言,它可以直接从源代码运行程序。程序员编写的源代码首先转变成一种中间语言代码,然后再被转换成能够直接执行的机器语言代码。
5)Python是如何进行内存管理的?
Python内存空间是以Python私有堆的形式进行管理的。所有的Python对象和数据结构都存放在一个私有堆中。解释器可以访问私有堆,而程序员不可以。
将Python堆空间中的内存分配给Python对象的工作是由Python内存管理器完成的。而内核API则会提供给程序员一些相关的工具来完成涉及到内存的编码工作。
Python还内置垃圾回收器,从而进行回收释放内存到堆空间。
6)能够找到程序中的bug进行静态分析的工具有哪些?
PyChecker是一种能够发现Python源代码中的bug并对其中的代码风格和复杂度进行警告的静态分析工具。另外一种工具是Pylint,它能够验证模块是否满足编码标准。
7)什么是Python装饰器?
一个Python装饰器是我们在符合Python语法的同时又方便地对函数做的一些特定的修改。
8)列表和元组的区别是什么?
列表和元组的区别是列表是可变的,而元组不可以。而且元组可以被散列,例如作为字典的键。
9)参数是如何通过值或者引用传递的?
在Python中,一切都是对象,所有变量都是对象的引用。通过引用传递还是值传递要根据函数来确定(原文有语法错误,根据个人理解翻译);事实上,你不能改变引用的值,但是如果对象是可变的,则可以改变对象。
10)怎样理解字典和列表?
它们是一种用来创建可变对象的语法结构。
11)Python提供哪些内置类型?(原文有语法错误,根据个人理解翻译)
分为可变类型和不可变类型。
可变类型:
列表
集合
字典
不可变类型:
字符串
元组
数字
12)Python中的命名空间是什么?
在Python中,每一个引入的名字都有一个存放的地方,而且它能够被连接。这就是所谓的命名空间。它就像一个在变量名和对象之间进行映射的盒子。当变量被用到时,就会查找这个盒子,从而得到相关联的对象。
13)Python中的lambda表达式是什么?
lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数。
14)为什么Python中的lambda表达式没有声明?
Python中的lambda表达式没有声明是因为它只是用来创建一个新的函数对象,并且在运行时才返回结果。
15)Python中的pass是什么意思?
pass是Python中的空操作语句,或者说,它是一个复杂语句中的一个空间占位符,只是用来表示空白,什么都不用写。
16)Python的迭代器是什么?
Python中的迭代器是用来迭代包含一组元素的容器的,如列表。
17)Python中的unittest是什么?
unittest是Python中的单元测试框架。它支持共享的测试建立、自动测试、关闭测试、聚集测试等等。
18)什么是切片?
从一个序列如列表、元组、字符串等类型中选择一个范围中的元素的机制叫做切片。
19)Python中的生成器是什么?
它是一种实现迭代器的方式。除了yield表达式外,它和正常的函数没什么区别。
20)Python中的docstring是什么?
docstring是Python中产生文档的方式,它可以为Python中的函数、模块和类产生文档。
21)Python中如何拷贝一个对象?
一般情况下,可以使用copy.copy()或者copy.deepcopy()函数进行对象拷贝。但是并不能拷贝所有的对象,只能拷贝大部分。
22)Python中负的索引是什么意思?
Python中可以使用整数和负数进行索引。对于正索引,0是第一个,1是第二个,以此类推。对于负索引,-1是最后一个,-2是倒数第二个,以此类推。
23)怎样将一个数字转换成字符串?
使用内置函数str()即可。如果想要八进制或者十六进制的形式,可以使用oct()或者hex()函数。
24)xrange和range的区别是什么?
xrange返回一个xrange对象,而range返回一个list对象,而且会使用和其范围大小相同的内存,不管这个范围有多大。
25)Python中的模块和包是什么?
在Python中,模块就是一种构建程序的方式。每一个Python程序文件都是一个模块,这个文件还可以引入其他模块如对象和属性等。
Python程序的文件夹就是模块的包。一个包可以包含模块和子文件夹。
英文原文:https://medium.com/@hidimba360/top-25-python-interview-questions-and-answer-9e8504753fdc#.jbkb4p979
译者:jcdhlzq
python面试常见问题-Python面试中最常见的25个问题相关推荐
- python面试常见问题-Python面试中常见的40个问题
1)什么是Python?使用Python有什么好处? Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理.Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个 ...
- python面试常见问题-Python面试常见问题,涉及Python各个方面
原标题:Python面试常见问题,涉及Python各个方面 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问 ...
- python项目面试_Python面试中最常见的25个问题-结束
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...
- python面试常见问题-Python面试常见的8个问题及答案总结
达内北京Python培训机构为大家总结下python面试题汇总,送给有需要的人! 第一家公司问的题目 1 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候,专门有一个解释器能 ...
- python面试经典问题_Python面试中最常见的25个问题-结束
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...
- python面试常用问题_Python面试中最常见的25个问题-结束
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...
- python中常见的流程_Python面试中最常见的25个问题-结束
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...
- 【运维面试】笔试题中最常见的高频问题-搞会你就不怕笔试了
很多学员去参加面试,上来就让做题, 我总结了下规律: 你期望薪资在12K以下,做笔试题的概率超级高,几乎是90% 你的期望薪资在8K以上,做笔试题的概率是100%: 你的期望薪资是15K以上,做笔试题 ...
- python分类分析模型_机器学习中最常见的四种分类模型
作者:Jason Brownlee 翻译:候博学 前言 机器学习是一个从训练集中学习出算法的研究领域. 分类是一项需要使用机器学习算法的任务,该算法学习如何为数据集分配类别标签. 举一个简单易懂的例子 ...
最新文章
- 修改 framework 代码的经验和踩过的坑
- 软件工程--软件设计
- php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析
- Codeforces Round #619 (Div. 2) F. Super Jaber 多源bfs + 思维转换
- 输出一个数的二进制序列中1的个数(三种方法)
- python 排列组合算法_排 列 组 合 公 式 及 排 列 组 合 算 法
- 备库由于表无主键导致延迟
- c语言static的用法_一文轻松掌握,单片机中C语言的数据存储与程序编写
- LeetCode#20 有效的括号
- matlab2c使用c++实现matlab函数系列教程-pascal函数
- MySQL 5.7 + Navicat 下载安装教程(附安装包)
- unable to resolve column. This inspection performs unresolved sql references check.
- 真实案例,现场的MOS管大面积烧毁,百思不得其姐,求大神们分析原因
- pip安装报错:There was a problem confirming the ssl certificate
- 火狐 代理服务器拒绝连接
- 我有罪我用了1下午时间终于无师自学用C#开发了俺的领先个Android 浏览器APP我对不起java 社区
- odoo常见的装饰方法
- TUTK 手机客户端注意事项
- 记一次泛微漏洞分析到发现未公开新漏洞
- Camera镜像上下左右颠倒问题的解决办法