热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python强大,直观的编程语言!

为什么Python编程语言在数据科学,机器学习,系统自动化,Web和API开发等方面大放异彩从1991年开始,Python编

640?wx_fmt=jpeg

为什么Python编程语言在数据科学,机器学习,系统自动化,Web和API开发等方面大放异彩

从1991年开始,Python编程语言就被认为是一种填补空白的语言,它是一种编写脚本的方式,可以“自动化那些无聊的东西”,也可以用来快速原型化那些将用其他语言实现的应用程序。

然而,在过去几年中,Python已经成为现代软件开发、基础设施管理和数据分析领域的一流公民。它不再是一种幕后的实用语言,而是web应用程序创建和系统管理的主要力量,也是大数据分析和机器智能爆炸的关键驱动因素。

Python的主要优势

Python的成功取决于它为初学者和专家提供的多项优势。

Python易于学习和使用

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

Python被广泛采用和支持

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

Python不是“玩具”语言

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

Python不断前进

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

Python用于什么

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

使用Python进行常规应用程序编程

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

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

复杂的数据分析已成为IT领域发展最快的领域之一,也是Python的明星案例之一。用于数据科学或机器学习的绝大多数库都具有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 ++或同等水平的其他语言。

Python如何使编程变得简单

Python的语法旨在可读性强,简洁明了。 Python 3.x中的标准“ hello world”不过是:

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

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

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

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

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

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

Python 2和Python 3

Python有两个版本,它们的差异足以吸引许多新用户。较老的“旧版”分支Python 2.x将在2020年之前继续受到支持(即,接受官方更新),并且此后可能会非正式地持续存在。 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的对象模型来管理多种云服务。

  • NumPy,Pandas和Matplotlib加速了数学和统计运算,并使创建数据可视化变得容易。

Python的妥协

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

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

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

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

为什么这么慢?这不仅仅是因为大多数Python运行时都是解释器,而不是编译器。这也是由于以下事实:即使Python进行了编译,Python内在的内在动力和对象的可延展性也使得难以优化语言的速度。也就是说,Python的速度可能并没有看起来那么重要,并且有许多方法可以缓解它。

Python性能优化

缓慢的Python程序永远不会总是那么慢。许多Python程序运行缓慢,因为它们未正确使用Python或其标准库中的功能。新手Python程序员经常像使用C或Java一样编写Python,并把性能留在桌面上。使用NumPy和Pandas之类的库可以大大加快数学和统计运算的速度。

软件开发的常言是,程序的90%的活动倾向于包含在代码的10%中,因此进行优化以使10%的活动可以带来重大改进。使用Python,您可以使用Cython或Numba等项目将这10%选择性地转换为C甚至是汇编。结果通常是程序在完全用C编写的对等程序的惊人距离内运行,而不会因C的内存微管理细节而混乱。

最后,替代的Python运行时具有CPython运行时缺少的速度优化。例如,PyPy是即时(JIT)Python编译器,可将Python即时转换为本机代码。 PyPy可以为许多常见操作提供数量级的加速。

开发人员时间通常比机器时间重要

或者换一种说法:对于许多任务,开发速度胜过执行速度。

一个给定的Python程序执行可能需要六秒钟,而另一种语言则只需一秒钟。但是,对于开发人员而言,将该Python程序放在一起仅需十分钟,而另一种语言的开发时间则需要一个小时或更长的时间。执行Python程序所浪费的时间要比开发过程中节省的时间多得多。

显然,当您编写具有高吞吐量,高并发要求的软件(例如交易应用程序或数据库)时,情况并非如此。但是对于许多实际应用程序而言,从系统管理到机器学习等领域,Python将证明足够快。

另外,Python支持的灵活性和开发速度可能会允许创新,而使用其他语言实现创新将更加困难且耗时。

当开发速度和程序员的舒适度比节省几秒钟的时间更重要时,Python可能是完成这项工作的最佳工具。

原文链接:

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

 640?wx_fmt=gif

了解新钛云服

新钛云服出品的部分精品技术干货

640?wx_fmt=png



推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
author-avatar
cfn7831325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有