python面试题总结_2019(有解释答案) --1

目录

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

2. 简述解释型和编译型编程语言

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

4. 说说你知道的Python3 和 Python2 之间的区别

5. Python3 和 Python2 中 int 和 long 区别?

6. xrange 和 range 的区别

7. 什么是 PEP8?

8. 了解 Python 之禅么?

9. 了解 dosctring 么?

10. 了解类型注解么?

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

12. Python 中的注释有几种?

13. 如何优雅的给一个函数加注释?

14. 如何给变量加注释?

15. Python 代码缩进中是否支持 Tab 键和空格混用。

16. 是否可以在一句 import 中导入多个库?

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

18. 例举几个规范 Python 代码风格的工具

19. 列举 Python 中的基本数据类型?

20. 如何区别可变数据类型和不可变数据类型


                                                        ****************python特性****************

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

 

2. 简述解释型和编译型编程语言

编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束。

 

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

CPython

  由C语言开发的  使用最广的解释器

IPython

  基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样

PyPy

  目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率

JPython

  运行在Java上的解释器 直接把python代码编译成Java字节码执行

IronPython

  在微软 .NET 平台上的解释器,把python编译成. NET 的字节码

 

4. 说说你知道的Python3 和 Python2 之间的区别

一是print的区别。python2中print是语句,要显示的对象不需要括号;python3中print是函数,要显示的对象需要加上括号。如:python2中的print ‘A=’,5。在python3中改为print(‘A=‘,5)

二是字符串存储的区别。python2中 字符串以 8-bit 字符串存储,python3中字符串以 16-bit Unicode 字符串存储。存储格式得到了升级

三是除法的区别。python2 10/3=3python3中改为10/3=3.3333333333333335,更精确啦,而10//3=3,这个//才是取整运算符。除法有了多样性选择

四是纠错机制的区别。python2 中try:...except Exception, e :...,改为python3中的 try:...except Exception as e :...。加了个as使代码更清晰啦

四在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的,在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。range与xrange的区别是:(1)range,函数说明:range([start,]stop[,step]),根据startstop的范围以及步长step生成一个序列(2xrange函数说明:功能和range一样,所不同的是生成的不是一个数组而是一个生成器

(3)主要区别:xrangerange的性能和效率更优,所以,在Range的方法中,它会生成一个list的对象,但是在XRange中,它生成的却是一个xrange的对象。当返回的东西不是很大的时候,或者在一个循环里,基本上都是从头查到底的情况下,这两个方法的效率差不多。但是,当返回的东西很大,或者循环中常常会被Break出来的话,还是建议使用XRange,这样既省空间,又会提高效率。

五 八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。

六Python 2.x中不等于有两种写法 != 和 <>Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯

七 Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

2)新增了bytes类型,对应于2.X版本的八位串

是打开文件的区别。python2中用file(.....)或者open(……)来打开文件,改为python3中只能用open(.....)来打开文件。更符合python之禅中简单明了无歧义的要求

是键盘输入的区别。从键盘录入一个字符串,python2中是 raw_input( "提示信息" )python3中是 input( "提示信息" )。让代码更简洁啦

八是库的变化。python2中的urlliburilib2两个库合并为python3中的urllib库;python2中的urllib2.urlopen()变为python3中的urllib.request.urlopen()python2中的urllib2.Request()变为python3中的urllib.request.Request()python2中的urllib.quote(text)变为python3中的urllib.parse.quote(text)python2中的urllib.urlencode 变为python3中的urllib.parse.urlencodepython2中的urllib2 变为python3中的urllib.requestpython2中的urlparse 变为python3中的 urllib.parsepython2中的cStringIO变为python3中的io

以上的区别都描述的比较具体,便于理解记忆,网上也有更抽象更全面的描述,这里没有引用;

 

5. Python3 和 Python2 中 int 和 long 区别?

如果32位的编译系统,两者都是4字节,即32bits,如果是64位的编译系统,int是4字节,long是8字节

 

6. xrange 和 range 的区别

见4

 

                                                          ****************编码规范****************

7. 什么是 PEP8?

PEP8是一个编程规范,内容是一些关于如何让你的程序更具可读性的建议

 

8. 了解 Python 之禅么?

打开界面 import this 可显示

 

9. 了解 dosctring 么?

三重引号中的信息

 

10. 了解类型注解么?

用 : 类型 的形式指定函数的 参数类型 ,用 -> 类型 的形式指定函数的 返回值 类型

def add(x, y):

    return x + y

可以写成:

def add(x:int, y:int) -> int:

    return x + y

这样对于函数读者,可以快速知道输入输出的数据类型;

 

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

如无特殊情况, 文件一律使用 UTF-8 编码 
如无特殊情况, 文件头部必须加入#--coding:utf-8--标识

统一使用 4 个空格进行缩进 
每行代码尽量不超过 80 个字符(在特殊情况下可以略微超过 80 ,但最长不得超过 120) 理由: 这在查看 side-by-side 的 diff 时很有帮助 方便在控制台下查看代码 太长可能是设计有缺陷

简单说,自然语言使用双引号,机器标示使用单引号,因此 代码里 多数应该使用 单引号 
自然语言 使用双引号 “…” 例如错误信息;很多情况还是 unicode,使用u”你好世界” 
机器标识 使用单引号 ‘…’ 例如 dict 里的 key 正则表达式 使用原生的双引号 r”…” 
文档字符串 (docstring) 使用三个双引号 “”“……”“”

 

12. Python 中的注释有几种?

单行注释符号,#

多行注释符号,3对单引号’’’ ‘’’或者3对双引号“”” “””

 

13. 如何优雅的给一个函数加注释?

同10,函数注释也就是类型注解

 

14. 如何给变量加注释?

直接加#好了

 

15. Python 代码缩进中是否支持 Tab 键和空格混用。

不支持,但是notpad++,首选项/语言中可以将TAP替换为空格,对于python文件来说只存在空格即使在编辑的时候你用了tap,这样就不怕python报错了;

 

16. 是否可以在一句 import 中导入多个库?

可以,建议每次一个

 

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

有意义

 

18. 例举几个规范 Python 代码风格的工具

pylint
 

19. 列举 Python 中的基本数据类型?

int, bool, str, list, tuple, dict, set

 

20. 如何区别可变数据类型和不可变数据类型

不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。

可变数据类型    :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。

总结:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变

不可变数据类型: int, str, tuple

可变数据类型:set, list, dict

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值