Python 能干什么(一)

江枫思渺然 提交于 2020-02-20 16:57:47

作者:Zhang Yang

当你看到 Python 的时候。 心里想

“蛇 ?!

”,请从0节開始;
“这是測试的事”。请跳转第2节;
“脚本语言”,请跳转到3节;
“不适用于大project”,请跳转4节;


O、 巨蟒剧团之飞行马戏团

巨蟒剧团(Monty Python)。1969年10月5日。当这五个英国佬和一个美国佬第一次胡言乱语恬不知耻地出如今BBC电视台上时。整个英伦三岛都傻了眼。从这天開始,在之后短短的四年间。 “巨蟒剧团” 及其六位成员的名字通过《飞翔的马戏团》这套空前成功的电视喜剧节目,非常快成为了英国现代文化的一个标志。这个名字。在今天不仅仅指向他们合作的四季电视剧和四部故事片。也不仅仅代言喜剧的后现代面孔。而俨然已经被推崇为后现代的文化符号,有喜剧界的披头士之称。

CNN的追忆文章曾感慨“巨蟒改变了世界”。


一、正文

作为一部英国肥皂剧的脑残粉,荷兰数学家 Guido van Rossum 将他设计的一种程序设计语言,命名为 Python,它最初公布的时间是1991年。是的,今年 Python 已经24岁了,比 HTTP 1.0协议大5岁,且比 Java 大4岁. 它已经步入创业的最佳年龄了。

1996年 Google 的第一个成功的网络爬虫就是使用 Python 实现的。有趣的是,此时 Rossum 已经移居美国1年了。而他就职 Google 还要再等 9 年以后的2005年。


二、Python 仅仅适合測试?

关于Python是一种什么样的语言。这里不打算说对象、类之类的术语。我们能够先来看一看。时至今日 Python 都在哪些领域里得以应用:

  • 电信基础设施 (Twilio)
  • 支付系统 (PayPal, Balanced Payments)
  • 神经科学和心理学
  • 数值分析和project (numpy, numba)
  • 动画(LucasArts, Disney, Dreamworks)
  • 游戏后台 (Eve Online, Second Life…)
  • Email 基础设施 (Mailman, Mailgun)
  • 媒体存储和处理 (YouTube, Dropbox)
  • 操作和系统管理 (Rackspace, OpenStack)
  • 自然语言处理(NLTK)
  • 机器学习和计算机版本号 (scikit-learn, Orange)
  • 安全性和渗透性測试 ( eBay/PayPal )
  • 大数据 (Disco, Hadoop support)
  • 搜索系统 (ITA, Ultraseek, 还有 Google)
  • Internet 基础设施 (DNS) (BIND 10)

在如此之多领域的公司里得到广泛使用的Python,难道仅仅是用在它们的測试部门?至少依据网络上的谣言。豆瓣、Youbute、和 Dropbox 都是以 Python 为主体语言搭建起来的站点。Python 强大的能力(比如:网络处理能力,还有各种扩展包),能够使得程序猿们把注意力投放在实现业务上,而不是内存管理,接口设计之类的细节上。

其实,Python 最常见的应用情形是:

1.使用 Python 高速生成程序的原型(有时甚至是程序的终于界面。你会喜欢 wxPython 的),
2.对当中有特别要求的部分,使用更合适的语言(尤其是 C/C++)改写。

由于 Python 与 C 的天然联系,它们之间的相互调用从来都不是问题。特别是 Python 怎样调用 C 在《 Programming Python》的 Chapter 22. Extending Python 部分有介绍。Python 调用 C 的动态/静态库并非一件复杂的事情。实际上, Python 原生的正則表達式库就是用 C 语言实现的。


三、Python 仅仅是脚本语言?

Python 确实的能够完毕脚本语言的功能(使用更简洁的方式)。

Shell 工具往往从命令行执行,实现诸如文本文件的处理以及调用其它程序等任务。Python 能做的很多其它。

有专家称 Python 是大数据全栈式开发语言,在“云基础设施”、“DevOps”、”网络爬虫” 和 “数据处理”领域,Python 都是最流行的语言。

对于开源软件向来迟钝的微软參加2015年 PyCon 时高调宣布提高 Python 在 Windows 上的编程体验,包含 Visual Studio 支持 Python,优化 Python 的 C 扩展在 Windows 上的编译等等。

脑补下未来 Python 作为 Windows 默认组件的场景。


四、Python 之NB

和 Python 之禅(注1)里表述的一样,简单优雅已经深入Python骨髓。正是这个原因,Python 才被觉得上手简单。开发高速。程序可读性超强;也正是这些特点。互联网公司更有意愿使用它,由于高速公布是它们的生存之根本。

在实践中,程序猿能够非常直观地发现,用 Python 写的代码通常要比相同的 C/C++ 或 JAVA 程序要短得多。

Python

#!/usr/bin/python

a = 0
while(a <= 10):
    a = a + 1
    print 'The number is '+a
print 'while is end'

C++

#include <iostream>

int main()
{
    int a = 0;
    while( a <= 10)
    {
        a = a + 1;
        cout<<"The number is "<<a<<endl;
    }
    cout<<"while is end"<<endl;
}

能做到这些,是由于Python

4.1 变量不须要声明

这个真的非常方便。变量的声明和定义一定会严重打断对代码逻辑的思考,还有对齐的麻烦。内存的管理。这简直都就是 C/C++ 编程中最常见的雷区。由于省略了声明,这也不再是问题了。

4.2 缩进而不是 { }

Python 是以缩进来管理代码结构的。

这样做有他的优越性:程序猿们一定有过漏写 ‘{’ 或者 ‘}’ 的经历。假设使用的编译器或者解释器优秀的话,漏去的’{’ ‘}’的确能够非常easy的加上。但假设不是这样。请在复杂的代码中漫游一会吧。由于可能编译器会通知一个 ‘错误’ 的错误信息,这个错误的位置可能会离你真正错误的地方非常远(十万八千里?!)。相对于此,以缩进管理方式的 Python 来说,程序猿差点儿不用考虑这种问题。其次以缩进方式区分块的Python在进行复杂的嵌套中。Python代码就显得明了很多了。


Python

class python:
    def Hello(self):
        print 'Hello'
    def count(self, n):
        in = 0
        while( in <= n):
            in = in + 1
            print in

C++

class python
{
public:
    void Hello(void)
    {
        cout<<"Hello"<<endl;
    }
    void count(int n)
    {
        int in = 0;
        while(in <= n)
        cout<<in<<endl;
    }
};

相比較来看,Python的代码更能分清其层次。而对于C++这种代码尽管能够编译成功。可是。对于其日后的维护,会造成无尽的痛苦。由此,能够看出 Python的语法简洁。

同一时候,Python 的查错能力也非常强。在普通情况下。Python的解释器能够准确指出错误的位置和原因。

Python 的缩颈唯一没有做好的就是没有指定一定要缩进4个空格。


注1: 了解完整的Python 哲学理念,能够在随意一个Python 交互解释器中键入import this 命令

注2:GIL,即全局解释器锁(Global Interpreter Lock)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!