向前
Python是一种可读性很强、用途广泛的编程语言。Python这个名字的灵感来源于英国喜剧团体蒙蒂·Python。它的开发团队有一个重要的基本目标,就是让语言变得有趣。Python易于设置,编写风格相对直接,对错误和误解提供即时反馈,是初学者的好选择。
Python是一种多范式语言,即支持多种编程风格,包括脚本和面向对象,这使得它适合一般用途。随着联合泰空联盟(NASA的主要飞机支持承包商)和工业光魔(VFX和卢卡斯影业的动画工作室)等组织越来越多地在工业中使用Python,Python为那些寻求额外编程语言的人提供了巨大的潜力。
Python于20世纪80年代末开发,并于1991年首次出版,由吉多·范·罗苏姆创建,他仍然活跃在社区中。被认为是ABC编程语言的继承者,Python第一版已经包含了异常处理、函数和具有继承性的类。1994年一个叫comp.lang.python的重要python新闻组成立时,Python的用户基数不断增长,为Python成为开源开发中最流行的编程语言之一铺平了道路。
概述
在讨论Python 2和Python 3之间潜在的和关键的编程差异之前,让我们看看最近主要Python版本的背景。
Python 2
Python 2于2000年底发布,这意味着它是一个比前一个版本更清晰、更包容的语言开发过程。之前版本的Python应用了PEP (Python增强协议),可以为Python社区成员提供信息或者描述语言的新特性。
此外,Python 2还包含了更多的程序功能,包括可以自动管理内存的循环检测垃圾收集器、增加对Unicode的支持以标准化字符、采用列表合成以现有列表为基础创建列表。随着Python 2的发展,增加了更多的功能,包括在Python 2.2中将Python类型和类统一到一层。
Python 3
Python 3被认为是Python的未来,Python是目前正在开发的语言版本。作为一项重大改革,Python 3于2008年末发布,旨在解决和纠正以前语言版本固有的设计缺陷。Python 3开发的重点是清理代码库,去除冗余,这清楚地表明执行给定任务的方式只有一种。
对Python 3.0的主要修改包括将print语句改为内置函数,改进整数分区的方式,以及提供更多对Unicode的支持。
起初,Python 3的采用很慢,因为该语言与Python 2不向后兼容,这需要人们决定使用该语言的哪个版本。另外,很多打包的库只适用于Python 2,但是因为Python 3背后的开发团队重申终止对Python 2的支持,更多的库被移植到Python 3。从支持Python 3的Python包数量来看,Python 3被采用的越来越多。在撰写本文时,支持Python 3的包已经包含了339个最流行的Python包。
Python 2.7
2008年Python 3.0发布后,Python 2.7于2010年7月3日发布,计划成为2.x的最后一个版本,发布Python 2.7的目的是提供一些衡量Python 2.x与Python 3兼容性的措施。这种兼容性支持包括2.7版的增强模块,例如用于测试自动化的unittest、用于解析命令行选项的argparse以及更方便的集合类。
Python 2.7在Python 2和Python 3.0之间具有早期迭代版本的独特地位。由于它与许多健壮库的兼容性,它一直是程序员非常受欢迎的选择。我们今天讨论Python 2的时候,通常指的是Python 2.7,因为它是最常用的版本。
但Python 2.7被认为是遗留语言,其后续开发,包括最重要的bug修复,将在2020年彻底停止。
主要差异
虽然Python 2.7和Python 3有很多相似的功能,但不应该认为它们是完全可以互换的。虽然在任何版本中都可以写出优秀的代码和有用的程序,但是值得知道的是,在代码语法和处理上会有一些相当大的差异。
下面举几个例子,大家要记住,深入学习Python,可能会遇到更多的语法差异。
印
在Python 2中,print被视为语句而不是函数,这是一个典型的混淆之处,因为Python中的很多操作都需要括号中的参数才能执行。如果您希望您的控制台在Python 2中输出“鲨鱼萨米是我最喜欢的海洋生物”,您应该编写如下打印语句:
在使用Python 3时,print()被明确视为一个函数,所以要输出上面相同的字符串,可以使用这个非常简单易用的函数语法:
这一改变使得Python的语法更加一致,也更容易在不同的打印功能之间切换。从方便性来说,print()语法也是向后兼容Python 2.7的,所以你的Python 3 print()函数可以在任何版本下运行。
整数除法
在Python 2中,你键入的任何没有小数的数字都会被认为是整数编程类型。虽然乍一看这似乎是处理编程类型的一种简单方法,但有时当您试图用整数除来获得带小数位(称为浮点数)的答案时,例如:
但是在Python 2中,整数是强类型的,不会变成有小数位的浮点数,即使这样做有直观意义。
当除法/符号两侧的两个数字是整数时,Python 2执行底部除法,以便对于商x,返回的数字是小于或等于x的最大整数。这意味着当您编写5/2来除法这两个数字时,Python 2.7将返回小于或等于2.5的最大整数。在这种情况下:
要解决这个问题,可以在5.0/2.0中加小数位,得到预期答案2.5。
在Python 3中,整数除法变得更加直观,例如
您也可以使用5.0/2.0返回到2.5,但是如果您想成为底层分区,您应该使用类似“//”的Python 3语法,如下所示:
Python 3中的这种修改使得整数除法更加直观,并且具有向后兼容Python 2.7的特点。
Unicode支持
当一种编程语言处理字符串类型,即一系列字符时,它们可以用几种不同的方式来完成,这样计算机就可以将数字转换成字母和其他符号。
Python 2默认使用ASCII字母,所以当你输入“你好,萨米!”Python 2将处理ASCII格式的字符串。受到各种扩展形式的数百个字符的限制,ASCII不是一种非常灵活的字符编码方法,尤其是在使用非英语字符的情况下。
要使用更通用、更强大的Unicode字符编码(支持超过128,000个字符,跨越当前和历史的脚本和符号集),您必须输入
,前缀u代表Unicode。
Python 3默认使用Unicode,节省了程序员额外的开发时间,并且可以很容易地在程序中直接键入和显示更多的字符。Unicode支持更强的语言字符多样性和表情显示,因此将其用作默认字符编码可以确保世界各地的移动设备都可以在您的开发项目中得到支持。
如果您希望您的Python 3代码向后兼容Python 2,您可以通过在字符串前面留下“u”来实现这一点。
后续开发
Python 3和Python 2最大的区别不是语法,而是Python 2.7在2020年会失去后续支持,Python 3会继续开发更多的功能,修复更多的错误。
最近的发展包括格式化字符串、简单的类创建定制和更简洁的矩阵乘法语法。
Python 3的后续开发意味着开发人员可以有信心及时解决问题,随着时间的推移,会增加更多的功能,程序也会变得更加有效。
其他注意事项
作为一个入门Python的新手程序员,或者说作为一个有经验的程序员,你会考虑自己在语言学习中想要达到的目标。
如果你想只学习不设置项目,你最有可能考虑Python 3会得到后续的支持和开发,而Python 2.7不会。
但是,如果您计划加入一个现有的项目,您很可能想知道团队正在使用的Python版本,以及项目中使用的软件包是否支持不同的版本,不同的版本应该如何与旧的代码库交互,以及项目的实现细节。
如果您正在打开一个项目,您将希望调查哪些包可以使用,以及这些包与哪个版本的Python兼容。如上所述,虽然Python 3的早期版本与为Python 2版本构建的库不太兼容,但许多库已经移植到Python 3,或者承诺在未来四年内移植到Python 3。
结论
Python是一种多才多艺的好编程语言。无论选择Python 2还是Python 3,都可以做出一些令人兴奋的软件项目。
虽然有几个关键的区别,但是从Python 3跳转到Python 2做一些调整也不是太难,而且你经常会发现Python 2.7很容易运行Python 3的代码,尤其是刚入门的时候。
重要的是要记住,随着越来越多的开发人员和团队关注Python 3,语言将变得更加复杂,满足程序员不断变化的需求,对Python 2.7的支持将越来越少。
[飞马俱乐部]
▼
飞马俱乐部
1.《python版本 解释 Python 2 和 Python 3 的版本之间差别》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《python版本 解释 Python 2 和 Python 3 的版本之间差别》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1616258.html