zoukankan      html  css  js  c++  java
  • Python简介

    一、Python简介

    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。实际上,Python诞生于 1991 年(比 Java 还早),并且一直是最流行的十门计算机语言之一。公司需要雇用程序员来写 Python 程序,包括你每天都会用到的 Google、YouTube、Dropbox、Netflix 和Hulu 等。对于发展迅速的组织来说,Python 能极大地提高生产力。

    目前Python主要应用领域:

    • 云计算: 云计算最火的语言, 典型应用OpenStack
    • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
    • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
    • 系统运维: 运维人员必备语言
    • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
    • 图形GUI: PyQT, WxPython,TkInter

    Python在一些公司的应用: 

    • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
    • CIA: 美国中情局网站就是用Python开发的
    • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
    • YouTube:世界上最大的视频网站YouTube就是用Python开发的
    • Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
    • Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
    • Facebook:大量的基础库均通过Python实现的
    • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
    • 豆瓣: 公司几乎所有的业务均是通过Python开发的
    • 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
    • 春雨医生:国内知名的在线医疗网站是用Python开发的
    • 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。 

    Python解释器:

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

    由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

    CPython

    当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

    CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

    IPython

    IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

    CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

    PyPy

    PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

    绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

    Jython

    Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

    IronPython

    IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

    二、Python与其他语言对比

    shell 程序:
    #!/bin/sh
    language=0
    echo "Language $language: I am the shell. So there."

    C 程序:
    #include <stdio.h>
    int main(int argc, char *argv[]) {
    int language = 1;
    printf("Language %d: I am C! Behold me and tremble! ", language);
    return 0;
    }

    C++ 和 C 看起来很相似,但是特性完全不同:
    #include <iostream>
    using namespace std;
    int main(){
    int language = 2;
    cout << "Language " << language <<
    ": I am C++! Pay no attention to that C behind the curtain!" <<
    endl;
    return(0);
    }

    Java 代码:
    public class Overlord {
    public static void main (String[] args) {
    int language = 3;
    System.out.format("Language %d: I am Java! Scarier than C! ", language);
    }
    }

    注:以上被称为静态语言

    Perl 代码:
    my $language = 4;
    print "Language $language: I am Perl, the camel of languages. ";

    Ruby是一门新语言。它借鉴了一些 Perl 的特点,并且因为Web 开发框架 Ruby on Rails 红遍大江南北。

    language = 5
    puts "Language #{language}: I am Ruby, ready and aglow."

    PHP代码:

    <?PHP
    $language = 6;
    echo "Language $language: I am PHP. The web is <i>mine<i>, I say. ";
    ?>

    Python代码:
    language = 7
    print("Language %s: I am Python. What's for supper?" % language)

    注:以上语言为动态语言(也被称为脚本语言)

    三、Python 2与Python 3

           你即将面临的最大问题是,Python 有两个版本。Python 2 已经存在了很长时间并且预装在Linux 和 Apple 电脑中。Python 是一门很出色的语言,但是世界上不存在完美的东西。和其他领域一样,在计算机语言中许多问题很容易解决,但是也有一些问题很难解决。后者的难点在于不兼容:使用修复后的新版本编写的程序无法运行在旧的 Python 系统中,旧的程序也无法运行在新的系统中。
           Python 的发明者(吉多 · 范 · 罗苏姆,https://www.python.org/~guido)和其他开发者决定把这些困难问题放在一起解决,并把解决后的版本称作 Python 3。Python 2 已经成为过去,Python 3 才是未来。Python 2 的最后一个版本是 2.7,它会被支持很长一段时间,但也就仅此而已,再也没有 Python 2.8 了。新的开发全部会在 Python 3 上进行。

  • 相关阅读:
    android 关于双卡设置
    android apk反编译和odex转dex
    Android中获取系统内存信息以及进程信息ActivityManager的使用(一)
    ubuntu banshee music
    linux 查看文件夹大小
    嵌入式Linux学习笔记之GPIO接口
    Android中MediaButtonReceiver广播监听器的机制分析
    在Ubuntu中VirtualBox下xp使用usb设备
    beyond compare 与git diff整合
    Linux学习笔记一 Linux基础知识认知以及初识Linux下C编程入门
  • 原文地址:https://www.cnblogs.com/rainowl-ymj/p/7040018.html
Copyright © 2011-2022 走看看