认识Python

认识Python

一、关于Python的常识

  • Python是从ABC发展起来,并且结合了Unix shell和C语⾔的习惯。

  • Python的解释器如今有多个语⾔实现,我们常⽤的是CPython(官⽅版本的C语⾔实现),其他还有Jython(可以运⾏在Java平台)、IronPython(可以运⾏在.NET和Mono平台)、PyPy(Python实现的,⽀持JIT即时编译)

  • Python⽬前有两个版本,Python2和Python3,最新版分别为2.7.16和3.7.3(截⽌⾄2019年4⽉)

二、Python的优缺点

优点

  • 简单:Python是⼀种代表简单主义思想的语⾔。阅读⼀个良好的Python程序就感觉像是在读英语⼀样,Python的这种伪代码本质是它最⼤的优点之⼀。它使你能够专注于解决问题⽽不是去搞明⽩语⾔本身。

  • 易学:就如同你即将看到的⼀样,Python有极其简单的语法,所有极其容易上⼿。

  • 免费、开源:Python是FLOSS(⾃由/开放源码软件)之⼀。简单地说,你可以⾃由地发布这个软件的拷⻉、阅读它的源代码、对它做改动、把它的⼀部分⽤于新的⾃由软件中。FLOSS是基于⼀个团体分享知识的概念。这是为什么Python如此优秀的原因之⼀——它是由⼀群希望看到⼀个更加优秀的Python的⼈创造并经常改进着的。

  • ⾼层语⾔:当你⽤Python语⾔编写程序的时候,你⽆需考虑诸如如何管理你的程序使⽤的内存⼀类的底层细节。

  • 可移植性:由于它的开源本质,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平台!

  • ⾯向对象:Python既⽀持⾯向过程的编程也⽀持⾯向对象的编程。在“⾯向过程”的语⾔中,程序是由过程或仅仅是可重⽤代码的函数构建起来的。在“⾯向对象”的语⾔中,程序是由数据和功能组合⽽成的对象构建起来的。与其他主要的语⾔如C++和Java相⽐,Python以⼀种⾮常强⼤⼜简单的⽅式实现⾯向对象编程。

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

  • 规范的代码:Python采⽤强制缩进的⽅式使得代码具有极佳的可读性。

  • 解释型语⾔:⼀个⽤编译型语⾔⽐如C或C++写的程序可以从源⽂件(即C或C++语⾔)转换到⼀个你的计算机使⽤的语⾔(⼆进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运⾏你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运⾏。⽽Python语⾔写的程序不需要编译成⼆进制代码。你可以直接从源代码运⾏程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使⽤的机器语⾔并运⾏。事实上,由于你不再需要担⼼如何编译程序,如何确保连接转载正确的库等等,所有这⼀切使得使⽤Python更加简单。由于你只需要把你的Python程序拷⻉到另外⼀台计算机上,它就可以⼯作了,这也使得你的Python程序更加易于移植。

  • 丰富的库:Python标准库确实很庞⼤。它可以帮助你处理各种⼯作,包括正则表达式、⽂档⽣成、单元测试、线程、数据库、⽹⻚浏览器、CGI、FTP、电⼦邮件、XML、XML-RPC、HTML、WAV⽂件、密码系统、GUI(图形⽤户界⾯)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可⽤的。这被称作Python的“功能⻬全”理念。除了标准库以外,还有许多其他⾼质量的库,如wxPython、Twisted和Python图像库等等。

缺点

         Python语⾔⾮常完善,没有明显的短板和缺点,唯⼀的缺点就是执⾏效率慢,这个是解释型语⾔所通有的,

         同时这个缺点也将被计算机越来越强⼤的性能所弥补。

三、Python的设计哲学

      Python的设计哲学总结起来就是:

  • 优雅
  • 明确:⽤⼀种⽅法,最好是只有⼀种⽅法来做⼀件事。如果⾯临多种选择,Python开发者⼀般会拒绝花俏的语法,⽽选择明确没有或很少有歧义的语法

  • 简单:代码像纯英⽂⼀样便于理解。

     在Python的交互编程终端⾥输⼊ import this 可以查看原⽂。下⾯是Python设计哲学原⽂及翻译:

 

     Beautiful is better than ugly. 优美胜于丑陋

     Explicit is better than implicit. 明了胜于晦涩

     Simple is better than complex. 简单胜过复杂

     Complex is better than complicated. 复杂胜过凌乱

     Flat is better than nested.      扁平胜于嵌套

     Sparse is better than dense.      间隔胜于紧凑

     Readability counts.           可读性很重要

     Special cases aren't special enough to break the rules. 即使假借特例的实⽤性之名,也不违背这些规则

     Although practicality beats purity.   虽然实⽤性次于纯度

     Errors should never pass silently.    错误不应该被⽆声的忽略

     Unless explicitly silenced.        除⾮明确的沉默       

     In the face of ambiguity, refuse the temptation to guess. 当存在多种可能时,不要尝试去猜测

     There should be one-- and preferably only one --obvious way to do it. 应该有⼀个,最好只有⼀个,明显能做到这⼀点

     Although that way may not be obvious at first unless you're Dutch.虽然这种 ⽅式可能不容易,除⾮你是python之⽗

     Now is better than never. 现在做总⽐不做好

     Although never is often better than right now. 虽然过去从未⽐现在好

     If the implementation is hard to explain, it's a bad idea. 如果这个实现不容易解释,那么它肯定是坏主意

     If the implementation is easy to explain, it may be a good idea. 如果这个实现容易解释,那么它很可能是个好主意

     Namespaces are one honking great idea -- let's do more of those! 命名空间是⼀种绝妙的理念,应当多加利⽤

 

 

四、Python的应用场景

  • Web应⽤开发

         Python经常被⽤于Web开发。⽐如,通过mod_wsgi模块,Apache可以运⾏⽤Python编写的Web程序。 Python定义了WSGI标准应⽤接⼝来协调Http服务器与基于Python的Web程序之间的通信。⼀些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

  • 操作系统管理、服务器运维的⾃动化脚本

         在很多操作系统⾥,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程序能够直接调⽤.NetFramework。⼀般说来,Python编写的系统管理脚本在可读性、性能、代码重⽤度、扩展性⼏⽅⾯都优于普通的shell脚本。

  • ⽹络爬⾍

         Python有⼤量的HTTP请求处理库和HTML解析库,并且有成熟⾼效的爬⾍框架Scrapy和分布式解决⽅案scrapy-redis,在爬⾍的应⽤⽅⾯⾮常⼴泛。

  • 科学计算

         NumPy、SciPy、Pandas、Matplotlib可以让Python程序员编写科学计算程序。

  • 桌⾯软件

         PyQt、PySide、wxPython、PyGTK是Python快速开发桌⾯应⽤程序的利器。

  • 服务器软件(⽹络软件)

        Python对于各种⽹络协议的⽀持很完善,因此经常被⽤于编写服务器软件、⽹络爬⾍。第三⽅库Twisted⽀持异步⽹络编程和多数标准的⽹络协议(包含客户端和服务器),并且提供了多种⼯具,被⼴泛⽤于编写⾼性能的服务器软件。

  • 游戏

        很多游戏使⽤C++编写图形显示等⾼性能模块,⽽使⽤Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更⼩;⽽Python则⽀持更多的特性和数据类型。Google、NASA、Facebook都在内部⼤量地使⽤Python。

 

 

 

 

原文地址:https://www.cnblogs.com/relitty/p/12793538.html