这篇文章主要介绍了python2和python3版本有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。
Python 2.x的版本,被称为Python2,目前最新版是2.7.18
Python 3.x的版本,被称为Python3,目前最新版是3.9.1
从Python2到Python3是一个大版本升级,两者之间有很多地方互不兼容。
使用时当然选择越新的Python版本越好,版本越老的代码越难维护。
维护老版本的代码时,需要了解各版本之间的主要差异。有时看到一些代码的语法特点,可以大致猜出它是什么版本
1.print函数:
Python 2:print是语句
print "Hello World!" # 结果:Hello World!
Python 3:print是函数
print('Hello World!') # 结果:Hello World! print 'Hello World' # 结果:SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Hello World')?
2.整数相除:
Python 2:3/2的结果是整数
print 3 / 2 # 结果:1 print 3 / 2.0 # 结果:1.5
Python 3:3/2的结果是浮点数
print(3 / 2) # 结果:1.5 print(3 / 2.0) # 结果:1.5
3.Unicode:
Python 2:有两种字符串类型:str和unicode
a = '您好' print a # 结果:SyntaxError: Non-ASCII character '\xe6' in file ......, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details # 在Python 2中,如果代码中包含非英文字符,需要在代码文件的最开始声明编码# _*_ coding:utf-8 _*_ a = '您好' print a # 结果:您好
Python 3:字符串默认就是Unicode
a = '您好' print(a) # 结果:您好
Python 3中的str相当于Python 2中的unicode
4.异常处理:
Python 2:
try: result = 1 / 0 print result except ZeroDivisionError, e: print str(e) # 结果:integer division or modulo by zero
或
try: result = 1 / 0 print result except ZeroDivisionError as e: print str(e) # 结果:integer division or modulo by zero
Python 3:只支持as关键字
try: result = 1 / 0 print(result) except ZeroDivisionError as e: print(str(e)) # 结果:division by zero
5.xrange:
Python 2:有 range 和 xrange 两个方法
区别:
range返回一个list,在被调用的时候即返回整个序列
xrange返回一个iterator,在每次循环中生成序列的下一个数字
# range print range(4) # 结果:[0, 1, 2, 3] # xrange print xrange(4) # 结果:xrang(4)
Python 3:不再支持 xrange 方法
print(range(4)) # 结果:range(0, 4) for i in range(4): print(i, end=' ') # 结果:0 1 2 3
Python 3中的 range 方法就相当于 Python 2中的 xrange 方法
6.map函数:
Python 2:map函数返回list
print map(lambda x: x+1, range(5)) # 结果:[1, 2, 3, 4, 5]
Python 3:map函数返回iterator
print(map(lambda x: x+1, range(5))) # 结果:<map object at 0x00000233A7B85E10> print(list(map(lambda x: x+1, range(5)))) # 结果:[1, 2, 3, 4, 5]
filter函数在Python 2和Python 3中也是同样的区别
7.不支持has_key:
Python 2:
my_dict = {"age": 30, "name": "Zhang San"}print my_dict.has_key("age")print "age" in my_dict # 结果:True# True
Python 3:
my_dict = {"age": 30, "name": "Zhang San"}print("age" in my_dict) # 结果:True print(person.has_key("age")) # 结果:AttributeError: 'dict' object has no attribute 'has_key'
感谢你能够认真阅读完这篇文章,希望小编分享的“python2和python3版本有哪些区别”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。