python2和3的差别这么大?
为什么把源代码复制到其他编译器就报错,最近几节课的代码都是这样,烦死了
为什么把源代码复制到其他编译器就报错,最近几节课的代码都是这样,烦死了
2019-04-24
一是print的区别。python2中print是语句,要显示的对象不需要括号;python3中print是函数,要显示的对象需要加上括号。如:python2中的print ‘A=’,5。在python3中改为print(‘A=‘,5)。这是我们编程中经常需要注意的问题。
二是取值范围的区别。python2中用xrange ,python3中用range。如:python2中的 xrange( 0, 4 ) 改为python3中的range(0,4)。关键字更清楚明白啦。
三是字符串存储的区别。python2中 字符串以 8-bit 字符串存储,python3中字符串以 16-bit Unicode 字符串存储。存储格式得到了升级。
四是纠错机制的区别。python2 中try:...except Exception, e :...,改为python3中的 try:...except Exception as e :...。加了个as使代码更清晰啦。
五是打开文件的区别。python2中用file(.....)或者open(……)来打开文件,改为python3中只能用open(.....)来打开文件。更符合python之禅中简单明了无歧义的要求。
六是键盘输入的区别。从键盘录入一个字符串,python2中是 raw_input( "提示信息" ),python3中是 input( "提示信息" )。让代码更简洁啦。
七是除法的区别。python2中 10/3=3,python3中改为10/3=3.3333333333333335,更精确啦,而10//3=3,这个//才是取整运算符。除法有了多样性选择。
八是库的变化。python2中的urllib、urilib2两个库合并为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.urlencode;python2中的urllib2 变为python3中的urllib.request;python2中的urlparse 变为python3中的 urllib.parse;python2中的cStringIO变为python3中的io。
举报