文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python2和python3版本有哪些区别

2023-06-14 15:39

关注

这篇文章主要介绍了python2和python3版本有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Python主要用来做什么

Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。

python2和python3的版本,目前主要分为两类:

Python 2.x的版本,被称为Python2,目前最新版是2.7.18

Python 3.x的版本,被称为Python3,目前最新版是3.9.1

从Python2到Python3是一个大版本升级,两者之间有很多地方互不兼容。

使用时当然选择越新的Python版本越好,版本越老的代码越难维护。

维护老版本的代码时,需要了解各版本之间的主要差异。有时看到一些代码的语法特点,可以大致猜出它是什么版本

Python2和Python3之间的变化主要在以下几个方面

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')?

整数相除:

Python 2:3/2的结果是整数

print 3 / 2# 结果:1print 3 / 2.0# 结果:1.5

Python 3:3/2的结果是浮点数

print(3 / 2)# 结果:1.5print(3 / 2.0)# 结果:1.5

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

异常处理:

Python 2:

try:    result = 1 / 0print resultexcept ZeroDivisionError, e:print str(e)# 结果:integer division or modulo by zero

try:    result = 1 / 0print resultexcept ZeroDivisionError as e:print str(e)# 结果:integer division or modulo by zero

Python 3:只支持as关键字

try:    result = 1 / 0print(result)except ZeroDivisionError as e:    print(str(e))# 结果:division by zero

xrange:

Python 2:有 range 和 xrange 两个方法

区别:

range返回一个list,在被调用的时候即返回整个序列

xrange返回一个iterator,在每次循环中生成序列的下一个数字

# rangeprint range(4)# 结果:[0, 1, 2, 3]# xrangeprint 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 方法

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中也是同样的区别

不支持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)# 结果:Trueprint(person.has_key("age"))# 结果:AttributeError: 'dict' object has no attribute 'has_key'

感谢你能够认真阅读完这篇文章,希望小编分享的“python2和python3版本有哪些区别”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯