Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
python3和2有什么区别_python2.7和python3的区别,希望能够帮助你!!!。
注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料,将在公众号CTO Plus发布,请关注公众号:CTO Plus
本篇原文:
Python2与Python3的9点差异对比总结
Python2与Python3是两个不同的Python版本,它们之间存在一些重要的差异,这两个版本并不完全兼容。本文将介绍Python2与Python3主要的差异,以及这些差异对Python开发的影响。
Python2中print语句使用方式是print “Hello, World!”,而Python3中使用的是print(“Hello, World!”)。也就是说,在Python3中,print语句已经变成了print函数。这个变化看起来很小,但对于需要将Python2代码移植到Python3的开发人员来说,它会带来很多问题。
Python 2和Python 3默认的字符串处理方式不同。Python3中字符串默认使用的是Unicode编码,不需要使用u前缀。而在Python2中,字符串默认使用的是ASCII编码,如果需要采用Unicode编码,则需使用u前缀。这个改变对于处理国际化和本地化的应用程序非常重要。例如,如果程序需要在不同的地区运行,那么在Python2中需要自己编写编码转换的代码,而在Python3中则不需要了。
Python2:
my_str = u'Hello, world!'
Python3:
my_str = 'Hello, world!'
在Python2中,整型除法时,如果除数和被除数都是整数,那么结果也是整数,整数除法不会保留小数部分,结果会被向下取整,如果需要执行浮点数除法,则需要将其中一个操作数为浮点数。例如,5/2返回结果是2。在Python3中,整型除法返回的是浮点数。例如,5/2返回结果是2.5。这个差异可能会对某些应用程序的结果产生影响。
Python2:
print(3/2) # 输出1
print(3.0/2) # 输出1.5
Python3:
print(3/2) # 输出1.5
在Python2中,使用xrange函数来生成指定范围的迭代器,这个函数在Python3中已经被弃用,而range函数则可以实现xrange函数的功能。这个变化对于需要将Python2代码移植到Python3的开发人员来说,可能需要修改一些代码。
在Python 2中,range的返回值是一个列表对象,如果需要生成大量的整数序列,会占用较多的内存。如果需要生成大量整数序列,需要使用xrange函数,生成一个生成器对象。在Python 3中,range函数返回一个可迭代对象。
Python2:
for i in xrange():
print(i)
Python3:
for i in range():
print(i)
可以看到xrange在python3中已经被遗弃
在Python2中,可以使用except Exception as e来捕获异常。而在Python3中,需要使用except Exception as e语句来实现相同的功能。这个变化对于需要将Python2代码移植到Python3的开发人员来说,可能需要修改一些异常处理代码。
在Python 2中,捕获异常的方式可以使用以下方式:
try:
# some code
except Exception, e:
# handle exception
在Python 3中,捕获异常的方式如下:
try:
# some code
except Exception as e:
# handle exception
在Python 2中,文件操作中使用file函数打开文件,而在Python 3中,使用open函数打开文件。
#py3
from urllib.parse import urlparse, urlencode, urlsplit
from urllib.request import urlopen
# py2
# from urllib import urlencode
# from urlparse import urlparse
# from urllib2 import urlopen
在Python 2中,使用raw_input函数获得用户输入,而在Python 3中,使用input函数获得用户输入。
在Python 2中,map和filter函数返回一个列表对象,而在Python 3中,map和filter函数返回一个可迭代对象。
总体来说,Python3相较Python2做出了一些改进,例如增加了async和await来支持异步IO、优化了内存管理、显示地区别对待文本和二进制数据等,这些变化可以提高Python应用程序的性能和可维护性。但是,这些变化可能会对需要将Python2代码移植到Python3的开发人员来说,产生一些适应性问题,Python 2和Python 3中有很多方面的差异,如果需要从Python 2迁移至Python 3,需要认真查看代码中的差异,进行相应的修改。建议新项目使用Python3进行开发,而对于已有的Python2项目,可以考虑使用2to3工具进行代码转换来适应Python3的规范。
Python专栏
https://blog.csdn.net/zhouruifu2015/category_
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接
更多精彩,关注我公号,一起学习、成长
关于Articulate“做一个知识和技术的搬运工。做一个终身学习的爱好者。做一个有深度和广度的技术圈。”一直以来都想把专业领域的技https://mp.weixin..com/s?__biz=MzIyMzQ5MTY4OQ==&mid=&idx=1&sn=2b774f789b4c7a2ccf10e465a1b9def6&chksm=e81c2070df6bafd7851efa824b5e2704e3fd34e76228ca4ce64d93f7964cd4abe60f2b#rd
标准库系列-推荐阅读:
Python基础之开发必备-标准库(内置模块)汇总详细介绍(持续更新……)
Python标准库45. math模块实践
Python标准库87. typing模块实践
Python标准库88. 数据库 (sqlite3) 实践
Python标准库89. signal模块实践以及与Linux的信号
看这一篇就够了Python的35个关键字的含义、作用、特性以及使用方式详解
推荐阅读:
Python基础之最新的73个内置函数(1)
Python基础之最新的73个内置函数(2)
Python基础之最新的73个内置函数(3)
Python基础之最新的73个内置函数(4)
Python基础之最新的73个内置函数(5)
Python基础之最新的73个内置函数(6)
Python基础之最新的73个内置函数(7)
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
下一篇
已是最新文章