您的位置:首页 > 编程语言 > Python开发

python学习之路——为什么选择python

2019-08-15 09:36 155 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_44928403/article/details/99620278

一、我为什么选择Python

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情。 ——Linux 之父 Linus Torvalds

网上看到这句话的时候我觉得很有感触,首先我并不是计算机或者有关计算机专业的学生,我选择Python很大程度上只是想学一门编程语言而且看到网上关于Python的夸赞,对它产生了兴趣,所以开始了我的python学习之路。
个人博客:http://liybox.top
公众号:希望星选
同时,对于初学者来说,比起其他编程语言,Python 更容易上手,这也是毋庸置疑的。
下面是我从网上浏览的一些关于Python优缺点以及各个方面应用的情况。
对于不了解它的人来说,他们认为脚本语言就是简单的,通俗的。 那么脚本语言与编程语言的区别在哪呢?脚本语言简单来说,编程语言需要编译再执行,脚本语言不需要编译,会直接执行。所以说,脚本语言,即使错了,也可以执行,因为一行一行执行,直到错的那一行才开始报错。但是编程语言如果错了的话,编译阶段会显示错误,没办法执行。

二、Python的优点

软件质量:Python更注重可读性、一致性,具备了比传统脚本语言更优秀的可维护性和可重用性。
高开发效率:相对于C、Java等编译/静态类语言,Python开发效率要高出数倍,其代码大小只有C++和Java的1/5-1/3,而且Python程序可立即运行,无需编译及链接等步骤。
可移植性:绝大多数Python程序无需任何改变即可在主流平台上运行。
标准库支持:Python内置了众多预编译并可移植的功能模块,并可通过自行开发的库或第三方应用进行功能扩展。
组件集成:Python脚本可通过灵活的集成机制轻松的与应用程序的其他部分进行通信,这种集成机制使Python成为产品定制和扩展的工具,比如,Python可以与C、C++等相互调用,可以与Java组件集成,可与COM和.NET框架进行通信。
开发乐趣:Python的易用性和强大的内置工具使编程成为一种乐趣而非繁琐的重复劳动。
内容选自:博客园——哈哈哈hhhh好累

三、Python的缺点

  • 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10倍,说出来就很夸张了。Python的标准实现方式是将源代码语句编译成字节码,再将字节码解释出来。字节码是一种平台无关的格式,具有可移植性。然而Python没有将代码编译成底层的二进制代码,会比C这样的编译语言慢一些。
  • 代码不能加密,因为PYTHON是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  • 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

三、Python的相关应用

  • 系统编程:提供API(ApplicationProgrammingInterface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。

  • 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。

  • 数学处理:NumPy扩展提供大量与许多标准数学库的接口。

  • 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

  • 数据库编程:程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

  • 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。

  • Web编程:应用的开发语言,支持最新的XML技术。

  • 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。

  • pymo引擎:PYMO全称为pythonmemoriesoff,是一款运行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memoriesoff)风格的AVG游戏,故命名为PYMO。

  • 黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

  • 用Python写简单爬虫

四、Python的应用场景

1.常规软件开发

Python支持函数式编程和OOP面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

2.科学计算

随着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。虽然Matlab中的许多高级功能和toolbox目前还是无法替代的,不过在日常的科研开发之中仍然有很多的工作是可以用Python代劳的。

3.自动化运维

这几乎是Python应用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面已经深入人心,比如Saltstack和Ansible都是大名鼎鼎的自动化平台。

4.云计算

开源云计算解决方案OpenStack就是基于Python开发的,搞云计算的同学都懂的。

5.WEB开发

基于Python的Web开发框架不要太多,比如耳熟能详的Django,还有Tornado,Flask。其中的Python+Django架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的WEB服务。

6.网络爬虫

也称网络蜘蛛,是大数据行业获取数据的核心工具。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上爬取免费的数据,那些大数据相关的公司恐怕要少四分之三。能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一,其Scripy爬虫框架应用非常广泛。

7.数据分析

在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python是数据分析的主流语言之一。

8.人工智能

Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

我主要学习的方向是网络爬虫和数据分析。

五、Python的技术特点

面向对象:Python是一种面向对象的语言,他的类模块支持多态,操作符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型,OOP十分易于使用。
免费
可移植性:Python的标准实现是由可移植的ANSI C编写的,可以在目前所有的主流平台上编译和运行。
功能强大
动态类型:Python在运行过程中随时跟踪对象的种类,不需要代码中关于复杂的类型和大小的声明。
自动内存管理:Python自动进行对象分配,当对象不再使用时自动撤销对象,当需要时自动扩展或收缩,能代替程序员进行底层的内存管理。
大型程序支持:为建立大规模系统,Python包含了模块、类和异常等工具,允许你把系统组织为组件,使用OOP重用并定制代码,以一种优雅的方式处理事件和错误。
内置对象类型:提供了常用的数据结构作为语言的基本组成部分,他们灵活并易于使用。
内置工具:自带了许多强大的标准操作,包含合并、分片、排序、映射等。
库工具:为完成更多特定任务,Python预置了许多预编译的库工具,从正则表达式匹配到网络都支持。
第三方工具:由于Python是开源的,网上可以找到COM、图像处理、XML、数据库等很多免费支持工具。
可混合:Python可以多种方式轻易的与其他语言编写的组件粘接在一起,例如,Python的C语言API可以帮助Python灵活的调用C程序。
简单易用、简单易学
内容选自:博客园——哈哈哈hhhh好累

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: