python的起源

Python簡介及入門

  • 編程語言簡介

  • Python介紹

  • Python安裝

  • pycharm安裝

  • 中文編碼

1.編程語言簡介

編程語言概念

  編程語言(programming language),是用來定義計算機程序的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員可以準確地定義計算機所須要使用的數據,並精確地定義在不一樣狀況下所應當採起的行動。python

編程語言的類別

  編程語言分爲機器語言彙編語言以及高級語言,通常咱們將機器語言、彙編語言這樣的偏向底層設計的統稱爲低級語言,低級語言並非說功能少,而是編程起來相對於高級語言來講太麻煩了。程序員

  高級語言的表明有:Python、Java、PHP、C#·····等等;編程

  低級語言的表明有:彙編、C······等等;網絡

  編程語言也能夠分爲編譯型語言解釋型語言框架

  編譯型語言:編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快;運維

       解釋型語言:解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的;編程語言

       固然還有其它的,好比靜態語言動態語言強類型定義語言弱類型定義語言工具

  

  編譯型VS解釋型性能

       編譯型單元測試

       優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高,能夠脫離語言環境獨立運行。

       缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。

       解釋型

       優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器,靈活,修改代碼的時候直接修改就行,能夠快速部署,不用中止維護。

       缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

  

高級語言和低級語言的優缺點

  高級語言,優勢:開發快,缺點:執行效率低,須要將代碼轉化成字節碼,而後將字節碼再編譯成機器碼供計算機識別執行;

  低級語言,優勢:執行效率高,缺點:開發慢,不放變編寫,編寫後的代碼可直接供計算機識別執行;

機器碼和字節碼介紹

  機器碼:

  學名機器語言指令,有時也被稱爲原生碼(Native Code),是電腦的CPU可直接解讀的數據。一般意義上來理解的話,機器碼就是計算機能夠直接執行,而且執行速度最快的代碼,用機器語言編寫程序,編程人員要首先熟記所用計算機的所有指令代碼和代碼的涵義。手編程序時,程序員得本身處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程當中每步所使用的工做單元處在何種狀態。這是一件十分繁瑣的工做,編寫程序花費的時間每每是實際運行時間的幾十倍或幾百倍。並且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。

  整體來講,機器碼是電腦CPU直接讀取運行的機器指令,運行速度最快,可是很是晦澀難懂,也比較難編寫,通常從業人員接觸不到。

  字節碼:

  字節碼(Bytecode)是一種包含執行程序、由一序列 op 代碼/數據對 組成的二進制文件字節碼是一種中間碼,它比機器碼更抽象,須要直譯器轉譯後才能成爲機器碼的中間代碼。一般狀況下它是已經通過編譯,但與特定機器碼無關。字節碼一般不像源碼同樣可讓人閱讀,而是編碼後的數值常量、引用、指令等構成的序列。字節碼主要爲了實現特定軟件運行和軟件環境、與硬件環境無關。字節碼的實現方式是經過編譯器和虛擬機器。編譯器將源碼編譯成字節碼,特定平臺上的虛擬機器將字節碼轉譯爲能夠直接執行的指令。

  整體來講,字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。須要直譯器轉譯後才能成爲機器碼。

  高級語言生成的是字節碼,再由各語言的編譯器進行編譯後轉成機器碼供計算機執行。

  低級語言生成的是機器碼,可直接由計算機執行。

編碼介紹

  編碼是信息從一種形式或格式轉換爲另外一種形式的過程也稱爲計算機編程語言的代碼簡稱編碼。用預先規定的方法將文字、數字或其它對象編成數碼,或將信息、數據轉換成規定的電脈衝信號。

  種類:

  ASCII、Unicode、utf八、gbk等等;

  a.ASCII

  目前計算機中用得最普遍的字符集及其編碼,是由美國國家標準局(ANSI)制定的ASCII碼。適用於全部拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。

  咱們知道,在計算機內部,全部的信息最終都表示爲一個二進制的字符串。每個二進制位(bit)有0和1兩種狀態,所以八個二進制位就能夠組合出256種狀態,這被稱爲一個字節(byte)。也就是說,一個字節一共能夠用來表示256種不一樣的狀態,每個狀態對應一個符號,就是256個符號,從 0000000到11111111。

  ASCII碼一共規定了128個字符的編碼,這128個符號(包括32個不能打印出來的控制符號),只佔用了一個字節的後面7位,最前面的1位統一規定爲0。

  缺點:英語用128個符號編碼就夠了,可是用來表示其餘語言,128個符號是不夠的。好比,在法語中,字母上方有注音符號,它就沒法用ASCII碼錶示。因而,一些歐洲國家就決定,利用字節中閒置的最高位編入新的符號。好比,法語中的é的編碼爲130(二進制10000010)。這樣一來,這些歐洲國家使用的編碼 體系,能夠表示最多256個符號。可是,這裏又出現了新的問題。不一樣的國家有不一樣的字母,所以,哪怕它們都使用256個符號的編碼方式,表明的字母卻不同。好比,130在法語編碼中表明瞭 é,在希伯來語編碼中卻表明了字母Gimel (?),在俄語編碼中又會表明另外一個符號。可是無論怎樣,全部這些編碼方式中,0—127表示的符號是同樣的,不同的只是128—255的這一段。至於亞洲國家的文字,使用的符號就更多了,漢字就多達10萬左右。一個字節只能表示256種符號,確定是不夠的,就必須使用多個字節表達一個符號。好比,簡體中文常見的編碼方式是GB2312,使用兩個字節表示一個漢字,因此理論上最多能夠表示256x256=65536個符號。

  b.Unicode

  世界上存在着多種編碼方式,同一個二進制數字能夠被解釋成不一樣的符號。所以,要想打開一個文本文件,就必須知道它的編碼方式,不然用錯誤的編碼方式解讀,就會出現亂碼。爲何電子郵件常常出現亂碼?就是由於發信人和收信人使用的編碼方式不同。

  能夠想象,假若有一種編碼,將世界上全部的符號都歸入其中。每個符號都給予一個獨一無二的編碼,那麼亂碼問題就會消失。這就是Unicode,就像它的名字都表示的,這是一種全部符號的編碼。

  缺點:浪費內存;咱們已經知道,英文字母只用一個字節表示就夠了,假如unicode統一規定,每一個符號用三個或四個字節表示,那麼每一個英文字母前都必然有二到三 個字節是0,這對於存儲來講是極大的浪費,文本文件的大小會所以大出二三倍,這是沒法接受的。

  c.utf8

  UTF-8就是在互聯網上使用最廣的一種unicode的實現方式。UTF-8最大的一個特色,就是它是一種變長的編碼方式。它可使用1~4個字節表示一個符號,根據不一樣的符號而變化字節長度。

  UTF-8的編碼規則很簡單,只有二條:

  1)對於單字節的符號,字節的第一位設爲0,後面7位爲這個符號的unicode碼。所以對於英語字母,UTF-8編碼和ASCII碼是相同的。

  2)對於n字節的符號(n>1),第一個字節的前n位都設爲1,第n+1位設爲0,後面字節的前兩位一概設爲10。剩下的沒有說起的二進制位,所有爲這個符號的unicode碼。

  d.gbk

  GBK是中國國家編碼,通用性比UTF8差,不過UTF8佔用的空間比GBK大。

  UTF8是國際編碼,它的通用性比較好,外國人也能夠瀏覽論壇,並且中文能夠直接識別,假如你的論壇要作的比較國際化那就必須用UTF8。

2.Python介紹

Python由來

  Python的創始人爲Guido van Rossum。1989年聖誕節期間,在阿薩姆特丹,Guido爲了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做爲ABC 語言的一種繼承。之因此選中Python(大蟒蛇的意思)做爲該編程語言的名字,是由於他是一個叫Monty Python的喜劇團體的愛好者。

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

Python和其餘語言區別

  

  大多數高級語言都是在C語言的基礎上開發的,好比Python、Java、C#......等等;

  C vs Python、Java、C#等等:

  C語言: 代碼編譯獲得 機器碼 ,機器碼在處理器上直接執行,每一條指令控制CPU工做;

  其餘語言: 代碼編譯獲得 字節碼 ,虛擬機執行字節碼並轉換成機器碼再後在處理器上執行;

  Python也稱C Python由C語言開發而來:

  對於使用:Python的類庫齊全而且使用簡潔,若是要實現一樣的功能,Python 10行代碼能夠解決,C可能就須要100行甚至更多.
  對於速度:Python的運行速度相較與C,比較慢,沒有C執行的快;

  Python vs Java、C#等等:

  對於使用:Linux原裝Python,其餘語言沒有;以上幾門語言都有很是豐富的類庫支持;
  對於速度:Python在速度上可能稍顯遜色;

Python種類

  

  • CPython
        Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。
  • JPyhton
        Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。
  • IronPython
        Python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)
  • PyPy(特殊)
        Python實現的Python,將Python的代碼轉換字節碼再編譯成機器碼。優勢,在第二次執行代碼是則直接將代碼轉換成機器碼交給計算機去執行。
  • RubyPython、Brython ...

3.Python安裝

在Windows環境下:

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

在Linux環境下:

1.Linux環境下,默認安裝了python2.x系列;
2.再安裝一個3.x系列;

4.pycharm軟件

pycharm簡介

  PyCharm是一種Python IDE,帶有一整套能夠幫助用戶在使用Python語言開發時提升其效率的工具,好比調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用於支持Django框架下的專業Web開發。

pycharm安裝

  具體安裝方法見度娘!

5.中文編碼

  在python2中若是未指定編碼,在執行過程當中遇到中文會出現報錯:

print "向將來"
--------輸出結果---------
SyntaxError: Non-ASCII character '\xe8' in file C:/Users/Administrator/Desktop/python/zjk/zjk1.py on line 28, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

  Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時沒法正確打印漢字,因此在讀取中文時會報錯。

  解決方法爲只要在文件開頭加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就好了。

  注意:「 #coding=utf-8」等號兩邊不要加空格;

  以下:

# -*-coding:UTF-8 -*-
print "向將來"
--------輸出結果---------
向將來16:59:4616:59:4916:59:51

 

  注意:python3源碼文件默認使用utf-8編碼,因此能夠正常解析中文,無需指定編碼,但爲了更好更方便使用,最好仍是加上。

相關文章
相關標籤/搜索