python面试题Python2.x和Python3.x的区别
下面看下python2.x和python3.x的区别
1.大环境不同
python2.x:源码重复,不规范
python3.x:整合源码,更清晰优美简单
2.默认编码不同
python2.x:默认编码ascii编码
python3.x:默认编码utf-8
3.python3.x没有长整型
python2.x:有长整型long
python3.x:long整数类型被废弃,统一为int
4.打印方式不同
python2.x:print语句,print空格+打印内容
python3.x:print()函数,print(打印内容)
5.交互函数不同
python2.x:raw_input() input()
1) raw_input()函数的输入内容类型为字符串
2) input()函数的输入内容类型为输入字符的类型
例:
>>> a = input('请输入:') 请输入:1 >>> type(a) <type 'int'> >>> a = input('请输入:') 请输入:'string' >>> type(a) <type 'str'> python3.x:input()
1) raw_input()被废除,统一使用input()
2) input()函数的输入内容类型为字符串
python面试题python2.x和python3.x的区别
1 py3默认使用utf-8编码,python2使用ascill码
2 去除了<>,全部改用!=
3 整型除法返回浮点数,要得到整型结果,请使用//
4 去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
5 改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出typeerror而不是返回随即的 bool值
6 输入函数改变了,删除了raw_input,用input代替
7 去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了
8 py3.x去除了long类型,现在只有一种整型——int,但它的行为就像2.x版本的long
9 新增了bytes类型,对应于2.x版本的八位串
10 迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法
11 增加了@abstractmethod和 @abstractproperty两个 decorator,编写抽象方法(属性)更加方便。
12 所以异常都从 baseexception继承,并删除了stardarderror
13 去除了异常类的序列行为和.message属性
14 用 raise exception(args)代替 raise exception, args语法
15 移除了cpickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。
16 移除了imageop模块
17 移除了 audiodev, bastion, bsddb185, exceptions, linuxaudiodev, md5, mimewriter, mimify, popen2,
rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块
18 移除了bsddb模块(单独发布,可以从获取)
19 移除了new模块
20 xrange() 改名为range()
总结
以上所述是小编给大家介绍的python面试题python2.x和python3.x的区别,希望对大家有所帮助
下一篇: CDR怎么设置页面布局?
推荐阅读
-
python面试题之迭代器和生成器的区别
-
Python3.x和Python2.x的区别介绍
-
python2.x中raw_input()和python3.x中的input()的区别讲解
-
Python中__init__和__new__的区别详解
-
Python中 单引号,双引号和三引号的区别
-
学习笔记(04):Python 面试100讲(基于Python3.x)-十进制、二进制、八进制和十六进制之间的转换
-
python列表append和extend的区别
-
python isoweekday和weekday的区别
-
python新式类和经典类的区别?
-
ubuntu 16.04 安装 python2.7 以及 cv2, dist-package 和 site-package 的区别, import cv2 出问题解答