什么是Python? 强大,直观的编程

始于1991年的Python编程语言被认为是一种填补空白的方法,它是一种编写脚本的方法,该脚本可以“ 自动完成无聊的工作 ”(正如一本有关学习Python的流行书所言),或快速原型化将以其他语言实现的应用程序。

但是,在过去的几年中,Python已成为现代软件开发,基础结构管理和数据分析中的一等公民。 它不再是一种后台实用程序语言,而是Web应用程序创建和系统管理的主要力量,并且是大数据分析和机器智能爆炸式增长的主要驱动力。

相关视频:Python如何简化编程

Python非常适合IT,可简化从系统自动化到机器学习等前沿领域的许多工作。

[ 同样在InfoWorld上:每种编程需要12个Python ]

Python的主要优势

Python的成功围绕着它为初学者和专家提供的几个优势。

Python易于学习和使用

语言本身的功能数量很少,只需很少的时间或精力即可制作出您的第一个程序。 Python语法被设计为可读性和直接性。 这种简单性使Python成为理想的教学语言,并且它使新手可以快速使用它。 结果,开发人员将更多的时间花在想解决的问题上,而将更多的时间花在思考语言复杂性或破译别人留下的代码上。

Python被广泛采用和支持

Python既流行又被广泛使用,因为在Tiobe Index等调查中排名很高,并且大量使用Python的GitHub项目都证明了这一点。 Python可在所有主要操作系统和平台上运行,大多数次要操作系统也可运行。 许多主要的库和基于API的服务都具有Python绑定或包装器,从而使Python与这些服务自由接口或直接使用这些库。

Python不是“玩具”语言

即使脚本编写和自动化涵盖了Python用例的很大一部分(稍后会详细介绍),Python也可用于构建专业质量的软件,既可以作为独立的应用程序,也可以作为Web服务。 Python可能不是最快的语言 ,但是它缺乏速度,却弥补了通用性。

Python不断前进

Python语言的每个修订版都添加了有用的新功能,以与现代软件开发实践保持同步。 例如,异步操作和协程现在已成为该语言的标准部分,从而使编写执行并发处理的Python应用程序变得更加容易。

[ 同样在InfoWorld上:每个Python开发人员都有24个Python库 ]

Python用于什么

Python最基本的用例是作为脚本和自动化语言。 Python不仅仅是shell脚本或批处理文件的替代品; 它还用于自动与Web浏览器应用程序GUI 进行交互,或在诸如AnsibleSalt的工具中进行系统配置和配置。 但是脚本和自动化只是Python的冰山一角。

ģENERAL应用编程与Python

您可以使用Python创建命令行和跨平台GUI应用程序,并将它们部署为独立的可执行文件。 Python没有从脚本生成独立二进制文件的本机功能,但是可以使用cx_FreezePyInstaller之类的第三方程序包来完成此任务。

使用Python进行数据科学和机器学习

复杂的数据分析已成为IT领域发展最快的领域之一,也是Python的明星案例之一。 用于数据科学或机器学习的绝大多数库都具有Python接口,这使得该语言成为机器学习库和其他数值算法最流行的高级命令接口。

[InfoWorld的基本知识: Anaconda入门,Anaconda是数据科学的Python发行版 Python的Anaconda发行版中的新增功能 5个用于数据科学的基本Python工具-现已改进 ]

Python中的Web服务和RESTful API

Python的本机库和第三方Web框架提供了快速便捷的方法来创建一切,从几行代码中的简单REST API到成熟的数据驱动站点。 Python的最新版本对异步操作提供了强大的支持,使站点可以使用正确的库每秒处理数万个请求

Python中的元编程和代码生成

在Python中,语言中的所有内容都是一个对象,包括Python模块和库本身。 这使Python可以用作高效的代码生成器,从而可以编写可操纵其自身功能并具有某种扩展性的应用程序,而这些扩展性在其他语言中很难或不可能实现。

Python还可以用于驱动代码生成系统,例如LLVM ,以有效地创建其他语言的代码。

Python中的“胶水代码”

Python通常被描述为一种“胶水语言”,这意味着它可以使不同的代码(通常是具有C语言接口的库)进行互操作。 它在数据科学和机器学习中的用途正是如此,但这只是一般思想的一种体现。 如果您有想要连接的应用程序或程序域,但无法直接相互通信,则可以使用Python进行连接。

Python不足之处

同样值得注意的是Python 适合执行的任务。

Python是一种高级语言,因此不适合用于系统级编程-设备驱动程序或OS内核已无法使用。

对于要求跨平台独立二进制文件的情况,它也不是理想的选择。 您可以为Windows,MacOS和Linux构建一个独立的Python应用程序,但并不优雅或简单。

最后,当速度是应用程序各个方面的绝对优先事项时,Python并不是最佳选择。 为此,最好使用C / C ++或同等水平的其他语言。

[ 也在InfoWorld上:为什么应该使用Python进行机器学习 ]

Python如何使编程变得简单

Python的语法是易读易懂的,几乎没有任何伪装。 Python 3.x中的标准“ hello world”无非是:

print(“Hello world!”)

Python提供了许多语法元素来简洁地表达许多常见的程序流。 考虑一个示例程序,该程序用于将文本文件中的行读取到列表对象中,并在此过程中剥离其终止换行符的每一行:

with open(‘myfile.txt’) as my_file:
    file_lines = [x.rstrip(‘\n’) for x in my_file]

with/as结构是上下文管理器 ,它提供了一种有效的方法来实例化代码块的对象,然后将其处置在该代码块之外。 在这种情况下,对象是my_file ,用open()函数实例化。 这代替了几行样板程序来打开文件,从文件中读取各行,然后将其关闭。

[x … for x in my_file]构造是另一个Python特性,即列表理解 。 它允许迭代包含其他项的项(在此为my_file及其包含的行),并允许处理每个迭代的元素(即每个x )并将其自动附加到列表中。

可以用Python编写形式化的for…循环之类的东西,就像使用另一种语言一样。 关键在于,Python可以经济地表达诸如循环访问多个对象的循环之类的内容,并对循环中的每个元素执行简单的操作,或者处理需要显式实例化和处理的事物。

这样的构造使Python开发人员可以平衡简洁性和可读性。

Python的其他语言功能旨在补充常见的用例。 大多数现代对象类型(例如Unicode字符串)直接内置于该语言中。 数据结构(如列表,字典(即哈希图或键值存储),元组(用于存储对象的不可变集合)和集合(用于存储唯一对象的集合)都可以作为标准问题项使用。

[ 同样在InfoWorld上:如何开始使用Python ]

Python 2和Python 3

Python有两个版本,它们的差异足以吸引许多新用户。 到2020年,仍将继续支持Python 2.x(较旧的“旧版”分支)(即,接受官方更新),此后它可能会非正式地继续存在。 Python 3.x是该语言的当前和将来的化身,它具有Python 2.x所没有的许多有用和重要的功能,例如新的语法功能(例如“ walrus运算符 ”),更好的并发控件等等。高效的口译员。

由于相对缺乏第三方库支持,Python 3的采用速度在最长的时间内减慢了。 许多Python库仅支持Python 2,因此很难切换。 但是在过去的几年中,仅支持Python 2的库数量有所减少。 现在,所有最受欢迎的库都与Python 2和Python 3 兼容 。如今,Python 3是新项目的最佳选择。 除非您别无选择,否则没有理由选择Python 2。 如果您坚持使用Python 2 ,则可以使用各种策略。

Python的库

Python的成功取决于第一方和第三方软件的丰富生态系统。 Python得益于强大的标准库和从第三方开发人员那里获得的大量易于获得和使用的库。 数十年来的扩展和贡献丰富了Python。

Python的标准库提供了用于常见编程任务的模块-数学,字符串处理,文件和目录访问,联网,异步操作,线程,多进程管理等。 但它也包含管理现代应用程序所需的常见高级编程任务的模块:读取和写入JSON和XML等结构化文件格式,处理压缩文件,使用Internet协议和数据格式(网页,URL,电子邮件)。 暴露任何与C兼容的外部函数接口的所有外部代码,都可以使用Python的ctypes模块进行访问。

默认的Python发行版还通过Tkinter提供了一个基本但有用的跨平台GUI库,并提供了SQLite 3数据库的嵌入式副本。

可通过Python软件包索引PyPI )获得的成千上万个第三方库构成了Python受欢迎程度和多功能性的最强展示。

例如:

  • BeautifulSoup库提供了一个多合一的工具箱,用于抓取HTML(甚至是棘手的破碎HTML)并从中提取数据。
  • 请求使处理HTTP请求变得轻而易举。
  • Flask和Django之类的框架允许快速开发包含简单和高级用例的Web服务。
  • 可以使用Apache Libcloud通过Python的对象模型管理多个云服务。
  • NumPyPandasMatplotlib加速了数学和统计运算,并使创建数据可视化变得容易。

[ 同样在InfoWorld上:每个Python开发人员都有24个Python库 ]

Python的妥协

像C#,Java和Go一样,Python具有垃圾回收的内存管理,这意味着程序员不必实现用于跟踪和释放对象的代码。 通常,垃圾回收会在后台自动进行,但是,如果这会带来性能问题,则可以手动触发它或将其完全禁用 ,或者声明整个对象区域不受垃圾回收的影响 ,以提高性能。

Python的一个重要方面是它的动态性 。 语言中的所有内容(包括功能和模块本身)都作为对象处理。 这是以牺牲速度为代价的(稍后会详细介绍),但使编写高级代码变得容易得多。 开发人员只需执行几条指令即可执行复杂的对象操作,甚至可以将应用程序的某些部分视为可以根据需要更改的抽象。

Python对有效空白的使用被认为是Python的最佳和最差属性之一。 下面第二行的缩进不仅是为了便于阅读; 它是Python语法的一部分。 Python解释器将拒绝不使用适当缩进来指示控制流的程序。

with open(‘myfile.txt’) as my_file:
    file_lines = [x.rstrip(‘\n’) for x in my_file]

语法空白可能会导致鼻子皱纹,因此某些人确实拒绝使用Python。 但是,即使使用最少的代码编辑器,严格的缩进规则在实践中也远不如理论上看起来那么笨拙,其结果是使代码更清晰,更具可读性。

另一个潜在的障碍,特别是对于那些来自C或Java语言的人,是Python如何处理变量类型。 默认情况下,Python使用动态或“鸭子”类型-伟大的快速编码,但在大型代码库中可能会出现问题。 也就是说,Python最近增加了对可选编译时类型提示的支持 ,因此可能会从静态类型中受益的项目可以使用它。

[ 同样在InfoWorld上:什么是Cython? Python以C的速度 ]

Python慢​​吗? 不必要

关于Python的一个常见警告是它运行缓慢。 从客观上讲,这是真的。 Python程序通常比C / C ++或Java中的相应程序运行慢得多。 一些Python程序的速度将降低一个数量级或更多。

翻译自: https://www.infoworld.com/article/3204016/what-is-python-powerful-intuitive-programming.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值