Python基礎知識01-簡介及入門代碼

一.python簡介與發展:

  python 是一種面向對象的解釋性計算機程序設計語言。由荷蘭人Guido van Rossum(吉多·範羅蘇姆) 於1989年發明。目前Python總體呈上升趨勢,經過TIOBE統計圖反映出Python應用愈來愈普遍而且也逐漸獲得業內的承認!!php

二.目前python的主要應用領域:

  • 雲計算:雲計算最火的語言,如:openstack
  • web開發:不少大型的網站均有python開發,如:Youtube,Dropbox,豆瓣等等,python的web框架:Django,flask
  • 科學運算,人工智能:典型NumPy,SciPy, Matplotlib, Enthought librarys,pandas
  • 運維:不會開發的運維,不是好運維,不會開發的運維,必將被淘汰
  • 金融:量化交易,金融分析等等。。。
  • 圖形GUI:PyQT, WxPython,TkInter

三.python主要應用的公司:

  Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。互聯網公司普遍使用Python來作的事通常有:自動化運維自動化測試大數據分析、爬蟲、Web 等。java

注視:上述重點字體表示該公司主要使用Python語言開發python

四.python的優缺點:

  優勢:linux

  1. Python的定位是「優雅」、「明確」、「簡單」,"易學",「免費」,「簡單」。
  2. 開發效率很是高,Python標準庫確實很龐大。它能夠幫助你處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、 CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。記住,只要安裝了Python,全部這些功能都是可用的。這被稱做Python的「功能齊全」理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。  
  3. 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
  4. 可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行
  5. 可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
  6. 可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
  7. Python確實是一種十分精彩又強大的語言。它合理地結合了高性能與使得編寫程序簡單有趣的特點。
  8. 規範的代碼。Python採用強制縮進的方式使得代碼具備極佳的可讀性。

  缺點:程序員

  1. 速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是很是誇張了,可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。
  2. 代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來去實現。
  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。關於這個問題的折衷解決方法,咱們在之後線程和進程章節裏再進行詳細探討。

五.python的種類:

  1. Cpython:python的官網版本,使用C語言實現,使用最爲普遍,Cpython實現會將源文件(py文件)轉換成字節碼(pyc文件),而後運行在python虛擬機上。
  2. Jython:python的java實現,Jython會將python代碼動態編譯成Java字節碼,而後在JVM上運行。
  3. IronPython:python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)
  4. PyPy(特殊) Python實現的Python,將Python的字節碼字節碼再編譯成機器碼
  5. RubyPython、Brython ...

六.python與其餘語言對比:

 python與C對比:web

  • python易學,易用,易懂。而且是一種腳本語言;python的類庫齊全而且簡單。
  • C語言:代碼編譯獲得機器碼,機器碼在處理器上直接執行,每一條指令控制CPU工做,與底層硬件打交道 
  • Python 和 C  Python這門語言是由C開發而來
  • 對於使用:因爲Python的類庫齊全而且簡潔,若是要實現一樣的功能,Python 10行代碼能夠解決,C可能就須要100行甚至更多.
  • 對於速度:Python的運行速度相較與C,很慢。

Python 和 C#對比:正則表達式

  • python能夠跨平臺,可運行在linux、windows,osx等平臺。
  • python開源,c#則相反
  • 對於使用:Linux原裝Python,其餘語言沒有;以上幾門語言都有很是豐富的類庫支持
  • 對於速度:Python是解釋性語言,C#須要編譯,因此python運行要慢點

python與java對比:算法

  • 開源方向來講,Python更有優點,Java(雖然最近Java已經開源了,但有一些開源協議上面的版權受限);
  • 對於使用:Python更簡潔,Java過於龐大複雜(如Web服務器)
  • 對於速度:Python是解釋性語言,java須要編譯,因此python運行要慢點 

 python與php對比:數據庫

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

 python與ruby perl對比:flask

  • 與ruby不一樣,OOP對於Python是可選的,因此Python不會強制用戶選擇OOP開發

七:python安裝:

windows環境:

1、下載安裝包
https://www.python.org/downloads/
2、安裝
默認安裝路徑:C:\python27
3、配置環境變量
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
如:原來的值;C:\python27,切記前面有分號

linux環境:

  linux中自帶python環境,若是想安裝本身想要的版本(本來是2.6升級爲2.7的版本),以下:

查看默認Python版本
  python -V
1、安裝gcc,用於編譯Python源碼
  yum install gcc
二、下載源碼包,https://www.python.org/ftp/python/
3、解壓並進入源碼文件
4、編譯安裝
  ./configure
  make all
  make install
5、查看版本
  /usr/local/bin/python2.7 -V
6、修改默認Python版本
  mv /usr/bin/python /usr/bin/python2.6
  ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum執行異常,修改yum使用的Python版本
  vi /usr/bin/yum
  將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6

python入門

一、第一句python代碼

python內部執行過程以下:

二、內容編碼

  python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)

  ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。

  顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode

  Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多

  UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...

  因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:

報錯:ascii碼沒法表示中文

#!/usr/bin/env python
print "你好,世界"

改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print "你好,世界"

三、註釋

  當行注視:# 被註釋內容

  多行註釋:""" 被註釋內容 """

四、pyc文件

  執行Python代碼時,若是導入了其餘的 .py 文件,那麼,執行過程當中會自動生成一個與其同名的 .pyc 文件,該文件就是Python解釋器編譯以後產生的字節碼。

  ps:代碼通過編譯能夠產生字節碼;字節碼經過反編譯也能夠獲得代碼。

五、執行腳本傳入參數

  Python有大量的模塊,從而使得開發Python程序很是簡潔。類庫有包括三中:

  • Python內部提供的模塊
  • 業內開源模塊
  • 程序員本身開發的模塊

  Python內部提供一個 sys 的模塊,其中的 sys.argv 用來捕獲執行執行python腳本時傳入的參數

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
print sys.argv 
相關文章
相關標籤/搜索