Python筆記1(python簡介以及環境配置)

1、Python介紹

一、Python簡介

       python的創始人爲吉多·範羅蘇姆(Guido van Rossum),中文名爲龜叔。1989年的聖誕節期間,爲了在 阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。html

       python名字來自龜叔所摯愛的電視劇Monty Python’s Flying Circus。他但願創造一種在C和shell之間,功能全面,易學易用,可拓展的語言。python

       龜叔2005年加入谷歌至2012年,2013年加入Dropbox直到如今,依然掌握着python發展的核心方向,被稱爲「仁慈的獨裁者」 。web

       Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。算法

       2017年7月的TIOBE排行榜,python已經佔據第四,python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言。shell

       1991年,第一個Python編譯器誕生。它是用C語言實現的,並可以調用C語言的庫文件。從一出生,Python已經具備了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊爲基礎的拓展系統。編程

  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增長了lambda,map, filterand reduce.
  • Python 2.0 - October 16, 2000,加入了內存回收機制,構成了如今Python語言框架的基礎
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015
  • Python 3.6 - December 16,2016

       如今公司大多用的python2.7版本,2008年的時候python3.0版本產生了,因爲python2.x版本不兼容python3.0版本,可是好多公司基於python2.6之前的版本開發的大的程序,爲了過分,在python2.6版本上開發了python2.7,到2020年,官網不在支持python2.7版本,建議你們在python3.6版本上學習和使用。小程序

二、Python語言的劃分

編譯型:將代碼一次性所有編譯成二進制,而後再運行。windows

缺點:開發效率低,不能跨平臺瀏覽器

優勢:執行效率高網絡

表明:C

解釋型:當程序開始執行時,將代碼一行一行的解釋成二進制、執行。

缺點:執行效率低

優勢:開發效率高,能夠跨平臺

表明:python

三、Python優缺點

優勢:

  1. Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。
  2. 開發效率很是高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。
  3. 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
  4. 可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行
  5. 可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
  6. 可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

缺點:

  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代碼時,咱們獲得的是一個包含Python代碼的以.py爲擴展名的文本文件。要運行代碼,就須要Python解釋器去執行.py文件。因爲整個Python語言從規範到解釋器都是開源的,因此理論上,只要水平夠高,任何人均可以編寫Python解釋器來執行Python代碼(固然難度很大)。事實上,確實存在多種Python解釋器。

四、Python種類

CPython

當咱們從Python官方網站下載並安裝好Python 3.6後,咱們就直接得到了一個官方版本的解釋器: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的解釋器不少,但使用最普遍的仍是CPython。若是要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是經過網絡調用來交互,確保各程序之間的獨立性。

五、Python2與Python3區別

Python2:源碼重複,不規範

Python3:整合源碼,更清晰簡單優美

 

2、python環境配置(多版本解釋器共存)

官網:https://www.python.org/

一、python2.7環境配置

首先登陸官網,選擇Downloads>windows;

 

選擇Latest Python 2 Release 2.7.14版本

選擇‘Windows  x86-64 MSI installer’進行下載;

 

下載完成後,雙擊【python-2.7.14.amd64.msi】,點擊【Next】;

選擇安裝路徑,點擊【next】;

此處取消添加環境變量,稍後配置,點擊【Next】;

出現如下界面,表示安裝完成,點擊【Finish】;

想要實現解釋器多版本共存,須要找到2.7安裝路徑,複製粘貼python.exe後重命名爲python2.exe,注意不要直接在python.exe重命名;

打開‘計算機>屬性>高級系統設置>環境變量’窗口;

編輯Path環境變量,把python2.7的安裝路徑以及Scripts的路徑粘貼到Path變量中,用分號進行分割,而後進行保存;

打開cmd,分別輸入python2.exe(能夠輸入quit()退出)和pip2.exe -V,出現如下界面表明配置成功。

二、python3.6環境配置

首先登陸官網,選擇Downloads>windows;

 

選擇Latest Python 3 Release 3.6.5版本;

 

選擇‘Windows  x86-64 executable installer’進行下載;

下載完成後,雙擊【python-3.6.4-amd64.exe】,選擇自定義安裝,先不添加環境變量,點擊【Next】;

默認全選,點擊【Next】;

選擇安裝路徑,點擊【Install】;

等待安裝完成;

想要實現解釋器多版本共存,須要找到3.6安裝路徑,複製粘貼python.exe後重命名爲python3.exe,注意不要直接在python.exe重命名;

打開‘計算機>屬性>高級系統設置>環境變量’窗口;

編輯Path環境變量,把python3.6的安裝路徑以及Scripts的路徑粘貼到Path變量中,用分號進行分割,而後進行保存;

打開cmd,分別輸入python3.exe(能夠輸入quit()退出)和pip3.exe -V,出現如下界面表明配置成功。

三、運行第一個小程序

方式一:

打開python3的解釋器,輸入print('hello world!')

方式二:

建立一個1.py的文件,文件內容:

在cmd中執行效果:

方式三:

上一步中執行 python d:t1.py 時,明確的指出 t1.py 腳本由 python 解釋器來執行。

若是想要相似於執行shell腳本同樣執行python腳本,例: ./1.py ,那麼就須要在1.py 文件的頭部指定解釋器

3、PyCharm簡介與安裝

一、PyCharm簡介

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

二、PyCharm安裝

官網:https://www.jetbrains.com/pycharm/

首先登陸官網,點擊【DOWNLOAD NOW】,進入下載頁面

咱們能夠看到左邊是專業版,右邊是社區版,建議使用專業版,功能比較齊全,關於註冊碼能夠上網找一下;

 

下載的文件以下;

右鍵選擇以管理員運行,打開安裝頁面,點擊【Next】;

選擇安裝路徑,點擊【Next】;

根據本身電腦的配置,選擇32位或者64位,勾選.py,點擊【Next】;

默認JetBrains,不須要修改,點擊【Install】;

等待安裝完成,點擊【Finish】,注意,在使用前須要破解,你們能夠購買或者上網查找;

三、PyCharm使用

成功破解以後運行PyCharm,選擇Create Nex Project;

選擇Pure Python,項目路徑,解釋器(目前選擇python3的解釋器),點擊【Create】;

打開後首先建立文件夾,python右鍵選擇new>Dirctory;

輸入文件夾名稱,點擊【OK】;

建立py文件,文件夾右鍵New>Python File;

輸入python文件名稱,點擊【OK】;

恭喜你已經能夠開始編程了,輸入print('hello world!'),而後選擇Run>Run>運行python文件的名稱,下方的控制檯能夠查看運行的結果;

相關文章
相關標籤/搜索