Python的特点(优点和缺点)

Python的特点(优点和缺点),第1张

Python 是一种面向对象、解释型的脚本语言,同时也是一种功能强大而完善的通用型语言。相比其他编程语言(比如 Java),Python 代码非常简单,上手非常容易。

举个简单的例子,比如要完成某个功能,如果用 Java 需要 100 行代码,但用 Python 可能只需要 20 行代码,这是 Python 具有巨大吸引力的一大特点。

不仅如此,Python 还有其他的特点,下面就给大家做一下总结。

Python 特点:简单易学

Python 是一种代表简单注意思想的语言,阅读一个良好的 Python 程序,即使是在 Python 语法要求非常严格的大环境下,给人的感觉也像是在读英语段落一样。

换句话说,Python 编程语言最大的优点之一,是其具有伪代码的特质,它可以让我们在开发 Python 程序时,专注于解决问题,而不是搞明白语言本身。

Python 特点:开源

Python 是  FLOSS(自由/开源源码软件)之一,简单地理解就是,用户使用 Python 进行开发和发布自己编写的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

开源正在成为软件行业的一种发展趋势,现在有很多商业软件公司都开始将自己的产品变成开源的(例如 Java)。也许,Python 的开源正是它如此优秀的原因之一,因为会有这么一群人,他们希望看到一个更加优秀的 Python,从而为了这个目标,不断地对 Python 进行创造,不断地改进。

Python 特点:高级语言

Python 是高级语言,因此当使用 Python 语言编写程序时,我们无需再考虑一些底层细节方面的问题。例如,如何管理程序使用的内存等等。

Python 特点:解释型语言

一个用编译型语言(如 C 或 C++)写的程序,可以从源文件转换到一个计算机使用的语言。这个过程主要通过编译器完成。当运行程序的时候,我们可以把程序从硬盘复制到内存中并且运行。

而 Python 语言写的程序,则不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,由 Python 解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

事实上,由于不再担心如何编译程序,使得使用 Python 变得更加简单,我们只需要将 Python 程序复制到另外一台计算机上,它就可以工作了。因此,Python 程序更加易于移植。

Python 特点:可移植性

由于 Python 是开源的,它已经被移植到许多平台上。如果能够避免使用依赖系统的特性,那就意味着,所有 Python 程序都无需修改就可以在好多平台上运行,包括 Linux 、Windows、FreeBSD、Solaris 等等,甚至还有 PocketPC、Symbian 以及 Google 基于 Linux 开发的 Android 平台。

解释型语言几乎天生就是跨平台的。Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。

Python 特点:面向对象

Python 既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如 C 语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如 C++)中,程序是由数据和功能组合而成的对象构建起来的。

与其他编程语言(如 C++ 和 Java)相比,Python 是以一种非常强大,而又简单的方式实现的面向对象编程。

Python 特点:强大的功能

Python强大的功能也许才是很多用户支持Python的最重要的原因,从字符串处理到复杂的 3D 图形编程,Python 借助扩展模块都可以轻松完成。

实际上,Python的核心模块已经提供了足够强大的功能,使用 Python 精心设计的内置对象可以完成许多功能强大的操作。

此外,Python的社区也很发达,即使一些小众的应用场景,Python往往也有对应的开源模块来提供解决方案。

Python 特点:可扩展性

Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。

Python 可扩展性一个最好的体现是,当我们需要一段关键代码运行的更快时,可以将其用 C 或 C++ 语言编写,然后在 Python 程序中使用它们即可。

除了以上几个特点(也可称之为优点)之外,作为一个解释型语言,Python 自然也有一些弱点,比如:

速度慢:Python 程序比 Java、C、C++ 等程序的运行效率都要慢。

源代码加密困难:不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难。

其实,这两个缺点并不是什么大问题,首先,由于目前计算机的硬件速度越来越快,软件工程往往更关注开发过程的效率和可靠性,而不是软件的运行效率;至于第二个问题就更不是问题了,现在软件行业的大势本就是开源,就像 Java 程序同样很容易反编译,但丝毫不会影响它的流行。

1、Django框架

优点:是一个高层次Python Web开发框架,特点是开发快速、代码较少、可扩展性强。Django采用MTV(Model、Template、View)模型组织资源,框架功能丰富,模板扩展选择最多。对于专业人员来说,Django是当之无愧的Python排名第一的Web开发框架。

缺点:包括一些轻量级应用不需要的功能模块,不如Flask轻便。过度封装很多类和方法,直接使用比较简单,但改动起来比较困难。相比于 C,C++性能,Django性能偏低。模板实现了代码和样式完全分离,不允许模板里出现Python代码,灵活度不够。另外学习曲线也相对陡峭。

2、Flask框架

优点:Flask是一个Python Web开发的微框架,严格来说,它仅提供Web服务器支持,不提供全栈开发支持。然而,Flask非常轻量、非常简单,基于它搭建Web系统都以分钟来计时,特别适合小微原型系统的开发。花少时间、产生可用系统,是非常划算的选择。

缺点:对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱。对新手来说,容易使用低质量的代码创建 “不良的web应用程序”。

3、Pyramid框架

优点:是一个扩展性很强且灵活的Python Web开发框架。上手十分容易,比较适合中等规模且边开发边设计的场景。Pyramid不提供绝对严格的框架定义,根据需求可以扩展开发,对高阶程序员十分友好。

缺点:国内知名度不高,高级用法需要通过阅读源代码获取灵感。默认使用Chameleon模板,灵活度没有成为一个要素。

4、webpy框架

优点:正如其名,webpy是一个采用Python作为开发语言的Web框架,简单且强大。俄罗斯排名第一的Yandex搜索引擎基于这个框架开发,Guido van Rossum认为这是最好的Python Web框架,还需要说别的吗有事实作证、有大牛认可,用起来吧!

缺点:Webpy并未像其他框架一样保持与Python 3兼容性的最新状态。这不仅意味着缺乏对异步语法的支持,还意味着缺少对已弃用的函数的错误。此外,目前尚不清楚维护者是否有计划在Python 2到达其支持生命周期结束后保持Webpy的最新状态。

5、Tornado框架

优点:Tornado是一个基于异步网络功能库的Web开发框架,因此,它能支持几万个开放连接,Web服务高效稳定。可见,Tornado适合高并发场景下的Web系统,开发过程需要采用Tornado提供的框架,灵活性较差,确定场景后再考虑使用不迟。

缺点:Tornado 50改进了与Python的本机异步功能的集成。因此不再支持Python 33并且Python 35用户必须使用Python 352或更高版本。Tornado 60将需要Python 35及更高版本,并将完全放弃Python 2支持。

显著的优点

Python 语言拥有诸多的优点,这其中,以下几个优点特别显著:

简单易学:Python语言相对于其他编程语言来说,属于比较容易学习的一门编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。正是因为Python语言简单易学,所以,已经有越来越多的初学者选择Python语言作为编程的入门语言。例如,在浙江省 2017年高中信息技术改革中,《算法与程序设计》课程将使用 Python语言替换原有的VB 语言。

语法优美:Python语言力求代码简洁、优美。在Python语言中,采用缩进来标识代码块,通过减少无用的大括号,去除语句末尾的分号等视觉杂讯,使得代码的可读性显著提高。阅读一段良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题,而不用太纠结编程语言本身的语法。

丰富强大的库:Python语言号称自带电池(Battery Included),寓意是Python语言的类库非常的全面,包含了解决各种问题的类库。无论实现什么功能,都有现成的类库可以使用。如果一个功能比较特殊,标准库没有提供相应的支持,那么,很大概率也会有相应的开源项目提供了类似的功能。合理使用Python的类库和开源项目,能够快速的实现功能,满足业务需求。

开发效率高:Python的各个优点是相辅相成的。例如,Python语言因为有了丰富强大的类库,所以,Python的开发效率能够显著提高。相对于 C、C++ 和 Java等编译语言,Python开发者的效率提高了数倍。实现相同的功能,Python代码的文件往往只有 C、C++和Java代码的1/5~1/3。虽然Python语言拥有很多吸引人的特性,但是,各大互联网公司广泛使用Python语言,很大程度上是因为Python语言开发效率高这个特点。开发效率高的语言,能够更好的满足互联网快速迭代的需求,因此,Python语言在互联网公司使用非常广泛。

应用领域广泛:Python语言的另一大优点就是应用领域广泛,工程师可以使用Python 做很多的事情。例如,Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等等。Python语言介于脚本语言和系统语言之间,我们根据需要,既可以将它当做一门脚本语言来编写脚本,也可以将它当做一个系统语言来编写服务。

不可忽视的缺点

毫无疑问,Python确实有用很多的优点,每一个优点看起来都非常吸引人。但是,Python并不是没有缺点的,最主要的缺点有以下几个:

Python的执行速度不够快。当然,这也不是一个很严重的问题,一般情况下,我们不会拿Python语言与C/C++这样的语言进行直接比较。在Python语言的执行速度上,一方面,网络或磁盘的延迟,会抵消掉部分Python本身消耗的时间;另一方面,因为Python 特别容易和C结合起来,因此,我们可以通过分离一部分需要优化速度的应用,将其转换为编译好的扩展,并在整个系统中使用Python脚本将这部分应用连接起来,以提高程序的整体效率。

Python的GIL锁限制并发:Python的另一个大问题是,对多处理器支持不好。如果读者接触Python时间比较长,那么,一定听说过GIL这个词。GIL是指Python全局解释器锁(Global Interpreter Lock),当Python的默认解释器要执行字节码时,都需要先申请这个锁。这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局解释器锁限制。当然,我们可以使用多进程的架构来提高程序的并发,也可以选择不同的Python实现来运行我们的程序。

Python 2与Python 3不兼容: 如果一个普通的软件或者库,不能够做到后向兼容,那么,它会被用户无情的抛弃了。在Python中,一个槽点是Python 2与Python 3不兼容。因为Python没有向后兼容,给所有的Python工程师带来了无数的烦恼。

上述就是总结的Python语言的优缺点。总体来说,Python目前的发展还是非常不错的。借着人工智能时代的东风,Python开发人员的未来一定会很光明。

一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序

一部署Apache Web服务器

(root下操作su root)1部署Apache Web服务器运行如下

2测试所安装Apache Web服务器

3检测Apache是否运行

4浏览器查看Apache测试页面内容

安装php7 sudo apt-get install php70

安装apache2 php7 module sudo apt-get install libapache2-mod-php70

安装php-mysqli模块:

apt-get install php-mysql

修改phpini设置文件 :

/etc/php/70/apache2/phpini(vim phpini)

extension=php_mysqlidll 去掉注释;

(命令::/php_mysqlidll,查找到上面的命令去掉前面的符号:)

systemctl start apache2 #生效

/var/www/html #下建立一个phpinfophp文件 <php phpinfo(); >

(touch phpinfophp)

vim <php phpinfo(); >

实战:安装基于PHPMySQL的博客及CMS建站系统

找到emlog_600下src文件夹拷贝到 /home/sgxz/下

在root 下cp -r /home/sgxz/src /var/www/html

创建数据库

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE emg;

在/var/www/html# 下

chmod -R 777 src #src为博客网站目录

回到浏览器

出现 连接数据库失败,请检查数据库信息。错误编号:1698

进入mysql数据库 修改root密码

MariaDB [(none)]> update mysqluser set authentication_string=PASSWORD('root'), plugin='mysql_native_password' where user='root';

回到浏览器输入http://127001/src/

标准库

Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。

Python标准库的主要功能有:

1文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能

2文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能

3操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能

4网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能

5网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架

6W3C格式支持,包含HTML,SGML,XML的处理。

7其它功能,包括国际化支持、数学运算、HASH、Tkinter等

Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组函式库,BoostPython,使得以Python或C++编写的程式能互相调用。Python常被用做其他语言与工具之间的“胶水”语言。

著名第三方库

1Web框架

Django: 开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。

ActiveGrid: 企业级的Web20解决方案。

Karrigell: 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。

Tornado: 一个轻量级的Web框架,内置非阻塞式服务器,而且速度相当快

webpy: 一个小巧灵活的Web框架,虽然简单但是功能强大。

CherryPy: 基于Python的Web应用程序开发框架。

Pylons: 基于Python的一个极其高效和可靠的Web开发框架。

Zope: 开源的Web应用服务器。

TurboGears: 基于Python的MVC风格的Web应用程序框架。

Twisted: 流行的网络编程库,大型Web框架。

Quixote: Web开发框架。

2科学计算

Matplotlib: 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。

SciPy: 基于Python的matlab实现,旨在实现matlab的所有功能。

NumPy: 基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。

3GUI

PyGtk: 基于Python的GUI程序开发GTK+库。

PyQt: 用于Python的QT开发库。

WxPython: Python下的GUI编程框架,与MFC的架构相似。

4其它

BeautifulSoup: 基于Python的HTML/XML解析器,简单易用。

PIL: 基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。

PyGame: 基于Python的多媒体开发和游戏软件开发模块。

Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。

优点

简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

易学:Python极其容易上手,因为Python有极其简单的说明文档 [10]  。

易读、易维护:风格清晰划一、强制缩进

用途广泛

速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。 [7] 

免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

可扩展性、可扩充性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用C++,在快速开发时候使用 Python。”

可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。Python的作者设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定(而C语言是用一对花括号{}来明确的定出模块的边界,与字符的位置毫无关系)。通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

高级动态编程:虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

做科学计算优点多:说起科学计算,首先会被提到的可能是MATLAB。除了MATLAB的一些专业性很强的工具箱还无法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:

● 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。

● 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。

● 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

Python程序员必备的几款软件

1、Visual Stusio Code

微软良心之作开源免费跨平台代码编辑器

2、Typora

一款超简洁的markdown编辑器,具有这几个特点完全免费,支持中文跨平台,支持windows,ios,linux,支持数字公式输入,编辑及其简洁,无多余功能

3、XMind

一个功能齐全的思维导图和头脑风暴软件,为激发灵感和创意而生,作为一款有效提升工作和生活效率的生产力工具,受到全球千万用户的青睐。

4、Snipaste

一款开发了三年才精心打磨出来的,简单好用却又强大到让人感叹的免费屏幕截图软件,Snipaste的名字拆开来看就是截图+贴图的意思。

5、Pychrm

带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。比如调试、Project管理、代码调转、管理提示、自动单元测试、版本控制等完成、,该IDE提供了一些高级功此外能,以用于支持Django下的专业Web开发

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Python的特点(优点和缺点)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情