Python簡介

Python簡介

Python官方的介紹是:php

Python是一種簡單易學,功能強大的編程語言,它有高效率的高層數據結構,簡單而有效地實現面向對象編程。Python簡潔的語法和對動態輸入的支持,再加上解釋性語言的本質,使得它在大多數平臺上的許多領域都是一個理想的腳本語言,特別適用於快速的應用程序開發。python

Python是一種解釋型語言、交互式語言、面嚮對象語言linux

  • 創始人:吉多·範羅蘇姆(Guido van Rossum),荷蘭人。人稱「龜叔」
  • 名稱來源:龜叔是BBC電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者
  • 創造初衷:龜叔想設計一種基於C和shell之間、功能全面、易學易用、可拓展的語言。
  • 設計哲學:「優雅」、「明確」、「簡單」
  • 開發哲學:「用一種方法,最好是隻有一種方法來作一件事」
  • Python格言
>>> import this
The Zen of Python, by Tim Peters

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.
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發展歷史

  • 1989年聖誕:龜叔開始寫Python語言的編譯器
  • 1991年:第一個Python編譯器誕生。他用C語言實現,並能調用C語言的庫文件。從一出生,Python就已經具備了:類、函數、異常處理、包含表和詞典在內的核心數據類型,以及以模塊爲基礎的拓展系統
  • Python1.0--1994年1月:增長了lambda、map、filter和reduce
  • zope1--1999年:Python第一個web框架誕生
  • Python2.0--2000年10:增長了內存回收機制,構成了如今Python語言框架的基礎
  • Python2.4--2004年11:Python最流行的web框架Django誕生
  • Python2.5--2006年9月
  • Python2.6--2008年10月
  • Python3.0--2008年12月:Python2.0版本的有許多重複的功能模塊、有些代碼也不夠簡潔。Python3.0的升級秉承着去繁從簡,合併重複功能。Python3.0版本不兼容2.0
  • Python3.1--2009年6月
  • Python2.7--2010年7月
  • Python3.2--2011年11
  • Python3.3--2012年9月
  • Python3.4--2014年3月
  • Python3.5--2015年9月
  • Python官方在2014年11月宣佈:Python2.7只會被支持到2020年,不會再有2.8版本,全部人都要儘快的遷移到Python3版本上。

Python的優缺點

優勢

  • 簡單、易學

      Python具備相對較少的關鍵字、結構簡單和一個明肯定義的語法,學習起來更加簡單。它使你可以專一於解決問題自己而不是去搞明白語言自己。web

  • 免費、開源

      Python是FLOSS(自由/開放源碼軟件)之一。你能夠自由的發佈這個軟件的拷貝、閱讀它的源代碼、對它進行改動、把它的一部分用於新的軟件中。它由一羣但願看到一個更優秀的Python的人人創造並改進着!正則表達式

  • 高層語言

      當你使用Python編寫程序時,你不須要去擔憂系統底層的一些細節,好比你的程序管理內存的使用等。算法

  • 可移植性

      因爲Python是免費開源的,因此Python已經被移植到許多平臺上。若是你當心避免使用依賴於系統的特性,那麼你的Python程序無需修改就能夠在任何平臺上面運行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、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!shell

  • 解釋性

      通常的編譯型語言寫的程序在程序執行以前,須要一個專門的編譯過程,經過編譯系統把高級語言翻譯成機器語言,把源高級程序編譯成機器語言文件。之後就能夠直接運行而不須要編譯了,由於翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率較高。Python程序在運行的時候不須要一個專門的編譯過程,你只須要從Python源代碼直接運行程序。在計算機內部,Python解釋器會把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。因爲你不須要考慮如何編譯程序,如何確保連接轉載正確的庫等等,因此這使得Python更加簡單。這使得Python程序更加易於移植。數據庫

  • 面向對象

      Python即支持面向過程的編程也支持面向對象的編程。在面向過程 的語言中程序是由過程或僅僅是可重用代碼的函數構建起來的。在面向對象 的語言中,程序是由數據和功能組合而成的對象構建起來的。Python以一種很是強大而又簡單的方式實現面向對象的編程。編程

  • 可拓展

      若是你須要一段運行很快的關鍵代碼,或者是想要編寫一些不肯開放的算法,你可使用C或C++完成那部分程序,而後從你的Python程序中調用。vim

  • 可嵌入

      你能夠將Python嵌入到C/C++程序,讓你的程序的用戶得到"腳本化"的能力。

  • 豐富的庫

      Python標準庫確實很龐大。它能夠幫助你處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。

缺點

  • 運行速度慢

      和C程序相比很是慢,由於Python是解釋型語言,程序代碼在執行時須要一行一行的翻譯成CPU能理解的機器碼,這個翻譯過程很是耗時,因此很慢。而C程序時運行前直接編譯成CPU能執行的代碼,因此很是快。若是有速度需求,能夠用C++改寫關鍵部分。可是大量的應用程序不須要那麼快的運行速度,由於用戶根本感受不出來。例如開發一個網絡下載程序,C程序運行的時間爲0.001秒,而Python須要0.1秒。可是因爲網絡緣由,須要等待1秒,你認爲用戶能感受到1.0001秒和1.1秒的區別麼。

  • 代碼不能加密

      若是要發佈程序,編譯型語言只須要把發佈編譯後的機器碼發佈出去,而解釋型語言必須把源碼發佈出去。

Python應用

  • Web編程:Django、Pyramid、Bottle、Tornado、Flask、web2py
  • GUI開發:wxPython、tkinter、PyGtk、PyGObject、PyQt
  • 科學運算:SciPy、Pandas、IPython
  • 軟件開發:Buildbot、Trac、Roundup
  • 系統管理:Ansible、Saltstack、OpenStack

使用的Python的公司有:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。互聯網公司普遍使用Python來作的事有:自動化運維、自動化測試、大數據分析、爬蟲和web

最新的TIOBE排行榜

image

image

Python種類

  • Cpython

      Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。

  • Jyhton

      Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。

  • IronPython

      Python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)

  • PyPy(特殊)

      Python實現的Python,將Python的字節碼字節碼再編譯成機器碼。

  • RubyPython、Brython ...

以上除PyPy以外,其餘的Python的對應關係和執行流程以下:

425762-20151024113930614-2128955181 

425762-20151024114048849-189055880

PyPy,在Python的基礎上對Python的字節碼進一步處理,從而提高執行速度!

image

Python和其餘語言的優點對比

Python & C

  • Python 跨平臺,Linux all,S60,Windows,OSX,FreeBSD,這點是C#沒法相比的;
  • Python開源,絕大多數資源都是開源的,C#則相反;
  • Python是解釋型語言,C#須要編譯(如asp.net);

Python & Java

  • 開源方向來講,Python更有優點,Java(雖然最近Java已經開源了,但有一些開源協議上面的版權受限);
  • Python更簡潔,Java過於龐大複雜(如Web服務器)
  • 如 Python & C# 的第三點

Python & C++,Perl

  • Python更容易學習,語法簡單,語意化,易懂;

Python & PHP

  • Python的OO更加完善
  • Python能夠開發桌面應用程序

安裝Python

windows

一、下載安裝包

根據本身的需求和系統版本下載相應的版本。https://www.python.org/downloads

二、安裝(筆者裝的是3.5.1)

image_thumb[6]

linux

#下載軟件包
wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
#解壓軟件包
tar xvf Python-3.5.1.tar.xz 
#進入文件夾
cd Python-3.5.1
#檢測安裝平臺並指定安裝路徑
./configure --prefix=/usr/local/python3.5.1
#編譯
make
#開始安裝
make install
#進入指定的安裝目錄,查看相關的文件
cd /usr/local/python3.5.1/
ls
#查看安裝後的版本
/usr/local/python3.5.1/bin/python3.5 -V
     Python 3.5.1
#建立軟鏈,使能夠在任何目錄啓動Python3.5.1
ln -s /usr/local/python3.5.1/bin/python3.5 /usr/bin/python3.5

Python IDE

一、Eclipse with PyDev

http://pydev.org/

Eclipse+PyDev插件,很適合開發Python Web應用,其特徵包括自動代碼完成、語法高亮、代碼分析、調試器、以及內置的交互瀏覽器。

二、Komodo Edit

http://komodoide.com/komodo-edit/

Komodo Edit是一個免費的、開源的、專業的Python IDE,其特徵是非菜單的操做方式,開發高效。

三、Vim

http://www.vim.org/download.php

Vim是一個簡潔、高效的工具,也適合作Python開發。

四、Sublime Text

http://www.sublimetext.com/

SublimeText也是適合Python開發的IDE工具,SublimeText雖然僅僅是一個編輯器,可是它有豐富的插件,使得對Python開發的支持很是到位。

五、Pycharm(筆者正在使用的工具)

http://www.jetbrains.com/pycharm/

Pycharm是一個跨平臺的Python開發工具,是JetBrains公司的產品。其特徵包括:自動代碼完成、集成的Python調試器、括號自動匹配、代碼摺疊。

Pycharm支持Windows、MacOS以及Linux等系統,並且能夠遠程開發、調試、運行程序。

六、Emacs

http://www.gnu.org/software/emacs/

Emacs是一個可擴展的文本編輯器,一樣支持Python開發。Emacs自己以Lisp解釋器做爲其核心,並且包含了大量的擴展。

七、Wing

https://wingware.com/

Wing是一個Python語言的超強IDE,適合作交互式的Python開發。Wing IDE一樣支持自動代碼完成、代碼錯誤檢查、開發技巧提示等,並且Wing IDE也支持多種操做系統,包括Windows、Linux和Mac OS X。

八、Pyscripter

https://code.google.com/p/pyscripter/

Pyscriptor是一個開源的Python集成開發環境,很富有競爭力,一樣有諸如代碼自動完成、語法檢查、視圖分割文件編輯等功能。

第一個Python程序

用程序文件來執行

//查看一下python版本
[root@cloud ~]# python -V
Python 2.7.5
//編輯一個文件hello.py
[root@cloud ~]# vim hello.py
    #!/usr/bin/env python
    print "Hello,world!"
//用python執行文件
[root@cloud ~]# python hello.py 
Hello.World!

在hello.py文件中經過「#!/usr/bin/env python」指定hello.py由python解釋器來執行

python內部執行過程以下:

交互式執行

//經過python這個linux命令進入解釋器
[root@***** ~]# python3
Python 3.5.2 (default, Jul 11 2016, 23:25:32) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linuxType "help", "copyright", "credits" or "license" for more information.
//執行程序內容
>>> print "Hello,world!"
Hello,world!
>>>
相關文章
相關標籤/搜索