当前位置: 首页 > 后端技术 > Python

Python2和Python3的区别介绍

时间:2023-03-25 23:07:12 Python

越来越多的库要放弃Python2了,强哥也在转向Python3。最近的项目开始用Python3写,也体会到了2和3的区别。主要区别在以下几个方面:print函数整数除法Unicode异常处理xrangemap函数不支持has_keyprint函数print在Python2中是一个语句(statement),print在Python3中变成了一个函数。Python3中调用print需要括号,不带括号会报SyntaxErrorPython2print"helloworld"outputshelloworldPython3print("helloworld")outputshelloworldprint"helloworld"outputsFile"",line1print"helloworld"^SyntaxError:Missingparenthesesincallto'print'Integerdivision在Python2中,3/2的结果是一个整数,在Python3中,结果是一个浮点数Python2Python版本3.0,通常称为Python3000,或Py3k简而言之。这是对早期Python版本的重大升级。为了不带来太大的负担,Python3.0在设计的时候并没有考虑向后兼容。许多为早期Python版本设计的程序将无法在Python3.0上正常运行。为了照顾现有的程序,Python2.6作为一个过渡版本,基本上使用了Python2.x的语法和库,同时考虑到向Python3.0的迁移,允许使用Python2.x的一些语法和函数蟒蛇3.0。建议新的Python程序使用Python3.0的语法。除非执行环境无法安装Python3.0或者程序本身使用了不支持Python3.0的第三方库。目前不支持Python3.0的第三方库有Twisted、py2exe、PIL等,大部分第三方库都在努力兼容Python3.0版本。即使不能立即使用Python3.0,也建议写一个兼容Python3.0的程序,然后使用Python2.6、Python2.7来执行。Python3.0的变化主要有以下几个方面:print函数print语句没有了,取而代之的是print()函数。Python2.6和Python2.7部分支持这种形式的打印语法。在Python2.6和Python2.7中,以下三种形式是等价的:print"fish"print("fish")#注意print后面有一个空格print("fish")#print()不能有任何其他参数但是,Python2.6其实已经支持了新的print()语法:字符编码:py3中默认的字符编码是unicode;py2中默认的字符编码是ASCII,如果文件中出现中文,需要在顶部添加编码声明Commissionhttps://www.kaifx.cn/broker/h...coding:utf8供用户输入:在py3中直接使用input();py2中使用raw_input()range和xrange:py3中的range==py2xrange中的xrange返回类似迭代器的东西,节省内存空间语句变量函数:py3中的print(),exec()是必须的方法加上括号;py2中print,exec数据传输:py3中socket传输传入的数据是byte类型/hashlib包更新也需要传递bytes类型的数据;在py2中,str可以直接传递,例如