Python学习笔记系列之000:Python简介

一、Python是什么?Python时候全球4大最流行的编程语言之一,因为其语法简洁、功能强大,目前已广泛应用于人工智能、云计算开发、大数据开发、数据分析、科学运算、网站开发、爬虫、自动化运维、自动化测试、游戏开发金融分析等领域。 二、Python的优点1. Python的定位是“优雅”、“明确”、“简单”。2. 开发效率非常高。Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。3. 高级语言。当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。4. 可移植性。由于它的开源本质,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平台!5. 可扩展性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。6. 可嵌入性。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。7.解释性8.规范的代码Python采用强制缩进的方式使得代码具有极佳的可读性。9.Python既有动态脚本的特性,又有面向对象的特性。Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。10.易于上手,难于精通。 三、Python的缺点1. Python  Python相对C、C++、Java语言确实慢很多,但其实这里所指的速度慢在大多数时候我们是无法感知的,比如说,是用C语言程序开发了一个程序,执行需要花0.01秒,使用Python实现同样功能的程序,需要花0.1秒的时间,虽然相差10倍,但是我们基本是感知不到的。更多的时候,程序慢是程序员实现功能方式导致的。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。2. 代码不能加密  因为Python是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python去实现。3. 多线程支持不好    线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。 当然,Python还有一些其它的小缺点,在这就不一一列举了。任何一门语言都不是完美的,都有擅长和不擅长做的事情,不要拿一个语言的劣势去跟另一个语言的优势来去比较,语言只是一个工具,是实现程序设计师思想的工具,就像我们之前中学学几何时,有的时候需要要圆规,有的时候需要用三角尺一样,拿相应的工具去做它最擅长的事才是正确的选择。 四、Python擅长的领域Python几乎是万能的。1.web开发Django、pyramid、Tornado、Bottle、Flask、WebPy。Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。全球第5大web框架的Django框架;支持异步高并发的Tornado框架;短小精悍的Flask、Bottle。2.网络编程Twisted、Requests、Scrapy、Paramiko。支持高并发的Twisted框架;py3引入的asyncio是异步编程变得简单。Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。3.爬虫开发爬虫领域,Python几乎是霸主地位。Scrapy、Request、BeautifuSoap、Urllib等。4.人工智能各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确立。5.金融分析Python是金融分析、量化交易领域里用的最多的语言。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测。6.科学计算NumPy、SciPy、Matplotilb、Enthought librarys、Pandas、Ipython。随着NumPy等众多程序库的开发,Python越来越适合做科学计算,绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比。Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛。7.游戏开发很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。相比Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与Lua相比,Python更适合作为一种Host语言,即程序的入口点是在Python那一端比较好,然后用C/C++在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目,而且能够很好地把网游项目的规模控制在10万行代码以内。8.GUI图形开发wxPython、PyQT、Kivy、Tkinter、PySide、PyGTK可以使用Tkinter/PyQT等框架开发各种桌面软件。9.自动化运维OpenStack(云计算)、SaltStack(自动化/主机管理)、Ansible(自动化/主机管理)、腾讯蓝鲸。在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。 通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。10. 云计算云计算最火的语言, 典型应用OpenStack。   

相关内容推荐