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的区别,希望对大家有所帮助
推荐阅读
-
python面试题之请谈谈.pyc文件和.py文件的不同之处
-
python基础教程:dir()和__dict__属性的区别
-
Python2.x和3.x下maketrans与translate函数使用上的不同
-
Python2.x与Python3.x的区别
-
Python中函数和方法的区别
-
Python中extend和append的区别讲解
-
python中xrange和range的区别
-
Python Pandas DataFrame:查询数据or选择数据(selection)之loc,iloc,at,iat,ix的用法和区别
-
把项目从Python2.x移植到Python3.x的经验总结
-
Python中staticmethod和classmethod的作用与区别