python 入門教程

weixin_34248118發表於2016-03-30

 

轉載自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tutorial.html

目錄

前言
1. 本文目的
2. 看此文之前你所要掌握的知識
1. Python簡介
1.1. 什麼是Python
1.1.1. Python這個單詞的本意是蟒蛇
1.1.2. Python是一種計算機語言
1.1.3. 作為計算機語言的Python的各種叫法的含義
1.1.3.1. Python是一種指令碼語言
1.1.3.2. Python是一種互動性的語言
1.1.3.3. Python是一門解釋性的語言
1.1.3.4. Python是一種物件導向的語言
1.1.3.5. Python是一種高階語言
1.2. Python能幹什麼
1.3. Python的特點
1.3.1. 作為解釋性語言的Python的優缺點
1.3.1.1. Python的優點
1.3.1.2. Python的缺點
1.3.2. Python語言自身的特點
1.4. Python相關的必備知識
1.4.1. Python檔案的字尾是py
1.4.2. Python的縮寫和簡稱
1.4.3. Python的官網
1.4.4. Python的logo圖案
2. 選擇並下載合適的版本的Python
2.1. 為何要注意選擇合適版本的Python
2.2. 如何選擇正確版本的Python
2.2.1. 明確當前所處平臺版本的資訊
2.2.2. 選擇可用和速度快的下載源
2.2.3. 選擇合適的版本的Python
3. 如何安裝Python
3.1. 如何在Windows系統中安裝Python
3.1.1. 在Win7中安裝Python
3.2. 如何在Linux系統中安裝Python
3.2.1. 在Ubuntu中安裝Python
3.3. 如何在Mac中安裝Python
4. 選擇合適的Python開發環境
4.1. 如何在Windows環境下開發Python
4.1.1. Python的最原始的開發方式是什麼樣的
4.1.1.1. 找個文字編輯器,新建個.py檔案,寫上Python程式碼
4.1.1.2. 開啟Windows的cmd,並且切換到對應的python指令碼所在目錄
4.1.1.2.1. 方法1:手動開啟cmd,並cd到對應路徑
4.1.1.2.2. 方法2:通過Notepad++的Open current dir cmd
4.1.1.3. 在cmd中去執行你的Python指令碼(.py檔案)
4.1.2. 利用Python的shell進行互動式開發又是什麼樣的
4.1.2.1. 命令列版本的Python Shell – Python (command line)
4.1.2.2. 帶圖形介面的Python Shell – IDLE (Python GUI)
4.1.2.3. 關於(command line或GUI版本的)Python Shell的用途
4.1.3. 利用第三方Python的IDE進行Python開發又是怎麼回事
4.1.3.1. 為何會有Python的IDE
4.1.3.2. 目前常見的一些Python的IDE
4.1.3.3. Python的IDE和Python程式碼編輯器,Windows的cmd,等的關係
4.1.3.4. 使用IDE時所遇到的一些常見的問題
4.1.3.4.1. IDE只能夠開啟了檔案,並不代表就已經在shell中執行了該檔案
4.1.3.4.2. 需要注意,確保有可以執行的Python起始部分的程式碼
4.1.4. 總結:到底使用哪種環境去開發Python
4.1.4.1. 對初學者的建議:如何選用Python的開發環境
4.1.5. 如何在Windows環境下使用Python指令碼
4.1.5.1. 如何在Windows下的cmd中執行BlogsToWordpress.py
4.2. 如何在Linux環境下開發Python
4.3. 如何在Mac環境下開發Python
5. Python的基本語法和基礎知識
5.1. 一張圖片入門Python
5.2. Python中的2.x版本和3.x版本
5.3. Python檔案編碼宣告
5.4. Python中的縮排
5.5. Python中基本變數的宣告和定義
5.5.1. Python中變數的作用域
5.5.2. Python中變數與C語言中的變數對比
5.6. Python中的分支結構
5.7. Python中的函式
5.8. Python中的物件導向程式設計
6. 繼續學習Python的思路和方法
6.1. 如何繼續深入學習Python
6.2. 如何利用Python相關資源
6.2.1. 如何利用Python自帶的手冊
6.2.2. 如何利用一些線上的Python資源
7. Python常見問題及解答
常見問題
7.1. 在window的cmd中執行python結果卻呼叫了文字編輯器去開啟了,而不是去呼叫Python解析器去執行python檔案
8. Python相關資源
參考書目

公式清單

4.1. 什麼是IDE
4.2. 什麼是Python的IDE

前言

1. 本文目的

本文目的在於,讓原先對於Python不熟悉的,甚至沒什麼概念的人。

看完本系列教程後,從Python的小白,變成,對於Python可以算是入門了。

2. 看此文之前你所要掌握的知識

最好有其他計算機語言的基礎

比如C語言,Java語言等。

當然,如果沒有,也是可以看此文的。

我會在必要的時候,進行相應的提示的。

第 1 章 Python簡介

摘要

本章主要講解在開始學習Python之前,所需要了解到的Python的一些基本概念,

包括Python是什麼,Python的特點和常見的用途,以及Python的兩大版本之間的主要區別。

在開發Python之前,需要先搞懂Python是啥。

下面就是介紹一下,概念性的東西。

【整理】Python語言簡介

1.1. 什麼是Python

1.1.1. Python這個單詞的本意是蟒蛇

Python,首先,作為一個英文單詞,其本意是:

巨蟒,蟒蛇

的意思。

1.1.2. Python是一種計算機語言

對於,Python,這個詞來說,在計算機語言領域內,此處,我們指的是,一種計算機語言,叫做Python

[提示] Python語言的名字的由來

之所以,我們把Python,蟒蛇,作為此計算機語言的名字,是有其歷史典故的:

即,Python語言名稱的由來的歷史了:

Python語言的創始人,吉多·範羅蘇姆(Guido van Rossum)

在1989年聖誕節期間,在阿姆斯特丹,為了打發聖誕節的無趣,決心開發一個新的指令碼解釋程式,

而在給自己新創造的計算機語言起名字的時候,

由於其是,自於七十年代風靡全球的英國六人喜劇團體,巨蟒劇團(Monty Python)的忠實粉絲,

所以,就把此計算機語言的名字叫做:Python

這就是,Python,一種計算機語言,的名字的由來,被叫成了一種看似很凶猛的動物,蟒蛇,的名字。

當然,Python語言本身,並不”凶猛“

倒是,說起Python語言的功能強大,倒是可以真的強大到,稱其為,”凶猛“,都不為過的。

1.1.3. 作為計算機語言的Python的各種叫法的含義

作為一種計算機語言的Python,自然也就會有,根據計算機語言不同的層面,去將其分類,所以你常常會聽到如下說法:

比如:

http://zh.wikipedia.org/wiki/Python_%28%E6%B6%88%E6%AD%A7%E4%B9%89%29

中的:

Python,一種直譯式、互動式、物件導向的計算機程式語言,由Guido van Rossum建立並以Monty Pythons飛行馬戲團的名字命名。

 

1.1.3.1. Python是一種指令碼語言

指令碼,對應的英文是:script

普通人,看到script這個英文單詞,或許想到的更多的是:電影的劇本,就是一段段的指令碼,所組成的

電影劇本的指令碼,決定了電影中的人和物,都做哪些事情,怎麼做

而計算機中的指令碼,決定了:

計算機中的作業系統和各種軟體工具,要做哪些事情,以及具體怎麼做

 

其實,指令碼,這個詞,筆者的理解,還有另外一種感覺:隨性

因為,現實中,寫電影指令碼,那直接拿張紙和筆,就可以寫了,寫完了,就可以拿去用,拿去拍電影了

而計算機中的指令碼,其實就是普通的文字,就是寫到文字檔案中的程式碼而已,其也是有隨性這個特點:寫完了,直接就可以(在某種具有解釋功能的環境中)執行了

比如:Linux中的shell指令碼,就是直接弄個文字檔案,寫上shell指令碼程式碼,然後儲存檔案,然後就可以,在Linux的Shell這個帶有shell的解釋功能的shell環境中,執行了

與此相對的,不那麼隨性的是:其他的,非指令碼語言,常叫做編譯性語言,比如C語言,往往都是需要額外加上編譯這個步驟,才能執行的。

 

1.1.3.2. Python是一種互動性的語言

 

1.1.3.3. Python是一門解釋性的語言

解釋性,也被叫做:直譯式

 

[提示] 什麼是解釋性語言

簡單說就是,無需編譯原始碼為成可執行檔案,直接使用原始碼,就可以執行的語言。

此處即,對於Python的原始碼,文字檔案,直接就可以去執行了,不需要像C,C#等語言,還需要編譯一下,才可以執行。

更詳細的解釋,參見:TODO:解釋性語言的詳細解釋。

1.1.3.4. Python是一種物件導向的語言

 

1.1.3.5. Python是一種高階語言

http://www.baike.com/wiki/Python

 

 

1.2. Python能幹什麼

這裡:

Python - 維基百科,自由的百科全書

中就有很多舉例:使用Python編寫的著名應用

 

1.3. Python的特點

1.3.1. 作為解釋性語言的Python的優缺點

而Python語言,本身就是一種解釋性語言,

所以,作為解釋性語言的Python,本身就有解釋性語言天然就有的一些優點和缺點:

 

1.3.1.1. Python的優點

 

  • 不需要編譯,即可執行

 

1.3.1.2. Python的缺點

  • 效能相對不是特別強

    所謂的,效能不是特別強,是先對來說的

    在某些,或者說,極少的,領域,對於效能要求非常高,則此時就不太適合使用Python去實現了

    現在已有的解決方法是:使用其他,相對Python效能更好的語言,實現和效能相關的那部分的功能,

    然後再整合整合到Python內。

     

 

1.3.2. Python語言自身的特點

除了作為解釋性語言的Python自帶的優缺點之外,作為Python語言本身,的確有其自己的特點:

一般來說,討論某種東西的特點,都是將其和同類事物去比較的;

相應的,此處,討論Python的特點的時候,把Python和其他計算機語言相比的,其特點,可以描述如下:

Python相對最大的一個特點,算是:

程式碼縮排決定了程式碼的邏輯關係,而不僅僅是為了好看

其他更多的特點,可以總結如下:

  • 有很多特性,使得語言本身很方便程式設計者使用

    比如對於字串可以直接通過陣列下表去獲得對應子字串

    這類特性,是很多其他語言,本身所不具有的。

  • Python是一種被廣泛採用的膠水語言

    粘合能力,相對其他語言,很強

     

  • 功能豐富的自帶的庫以及種類和數量繁多且強大的第三方庫

    除了本身Python語言本身自帶的標準庫之外

    由於Python語言本身很好用,促使很多其他人,前前後後,寫了N多個庫

    積累至今,就成了:Python擁有數量巨大的,各種各樣的,功能強大的,第三方的庫函式。

    此特點,對於Python語言的使用者來說,有著顯而易見的好處:

    當你去實現很多各種功能的時候,往往不需要重複造輪子,

    往往是可以找到,現成的,已有的,內建Python庫,或第三方的Python的庫,去幫你實現你要的功能

    換句話說:你去實現一個複雜的功能的時候,往往變成了,找到合適的庫,並使用,即可。

    與此相對的,用其他語言去實現同樣的功能的時候,由於缺少好用的庫,而使得你需要重頭到尾,全新的實現對應的功能所需的程式碼。

    由此對比出,Python的好用和強大。

 

1.4. Python相關的必備知識

對於Python語言的學習,即使沒有去深入學習Python的細節知識

對於Python相關的一些必備知識,常識性的知識,也是需要先去了解清楚的。

下面就是對於Python的相關的常識性的東西,先做個解釋:

 

1.4.1. Python檔案的字尾是py

計算機的世界中,多數東西的型別,都是通過檔名的字尾來區分的。

Python的檔案的字尾是py

1.4.2. Python的縮寫和簡稱

正是由於Python的檔名字尾是py

所以,很多人,也常常用py來指代Python

比如後面你會提到的,有些人把Python 2簡寫為py2

1.4.3. Python的官網

http://www.python.org/

 

 

1.4.4. Python的logo圖案

 

 

第 2 章 選擇並下載合適的版本的Python

摘要

本章主要講解,在開始Python學習之前,如何根據自己的當前的作業系統的版本,去選擇和下載合適的版本的Python。

 

開發Python之前,肯定是要先搞清楚,如何下載對應的Python。

本來下載一個東西是很簡單的事情,但是由於Python有很多版本方面的事情,所以需要搞清楚很多基本邏輯和概念,才知道自己需要下載哪個版本的。

 

待整理:

【教程】如何下載最新版的,各種版本的,包括Python 2.x和Python 3.x的Python

2.1. 為何要注意選擇合適版本的Python

因為,如果選擇錯誤的,不合適的版本的Python,

則很可能導致後續學習Python和開發Python時,會遇到問題和錯誤。

比如,一些相對常見,由於版本選擇錯誤而出現的問題有:

  • 由於選擇了Python 3.x版本,但是參考別人的Python 2.x的程式碼,結果會出現語法錯誤

    其中最最常見的,有兩個經典的例子:

    • printf的語法不同而導致出錯

       

    • TODO:好像有個string還是其他什麼的,版本2.x和版本3.x是不同的

    當然,出處之外,Python 2.x和Python 3.x還有其他更多語法上面的不同,再次就不一一細說了。

  • x64的系統中安裝了x86的庫,導致後續使用時無法使用

    TODO:找到對應的x64庫的錯誤的例子

     

 

2.2. 如何選擇正確版本的Python

2.2.1. 明確當前所處平臺版本的資訊

搞清楚當前作業系統的具體資訊

尤其是什麼系統,什麼版本

以便於後續選擇與當前系統所匹配的,最合適的版本

 

2.2.2. 選擇可用和速度快的下載源

Python官網中的下載頁面:

http://www.python.org/ftp/python/

http://python.org/getit/releases/

但是Python官網,不是太穩定:對於國內開發者來說,時不時會出現無法訪問的情況。

後來找到一個Python官網的國內的映象:

http://mirrors.sohu.com/python/

速度相對來說,蠻快的。

如果發現Python官網無法訪問和下載的話,可以去上述映象去下載。

 

2.2.3. 選擇合適的版本的Python

接下來,就是去選擇,合適自己的,與自己當前的系統所匹配的版本的Python,然後再去下載。

什麼叫合適自己的版本的Python呢?

那就是:

明確了之前介紹的,Python有2.x和3.x的區別後,選擇對應的2.x或3.x後

再根據當前自己系統,下載對應的版本的Python

 

 

第 3 章 如何安裝Python

摘要

本章主要講解,在下載了合適的版本的Python後,圖文並茂的介紹如何去安裝Python。

 

在下載完畢Python後,就是去安裝Python了。

 

3.1. 如何在Windows系統中安裝Python

Windows系列作業系統,有很多不同版本,

目前主流的,最常用的有Windows XP,Windows 7,Windows 8

3.1.1. 在Win7中安裝Python

下面以Windows 7為例,來解釋如何在Windows中安裝Python

待整理:

【教程】如何在Windows系統中安裝Python

 

其中最重要的一點是:最好安裝的路徑中,不要包含中文

是為了避免以後可能出現的,在Python開發期間,由於中文路徑,而導致的一些問題

3.2. 如何在Linux系統中安裝Python

Linux系統是個統稱

其有很多所謂的發行版,

其中目前相對比較流行一些有:(較早的)RedHat(紅帽子),OpenSUSE,以及後來出現的Ubuntu,等等

3.2.1. 在Ubuntu中安裝Python

好像是:由於Linux類的系統中,包括Ubuntu,很多內建的工具和服務,都是Python程式碼寫的。

所以,為了保證系統的正常執行,保證不影響當前自己的Linux系統,

最好不要解除安裝舊版本的Python,

而是在Linux類系統中自帶的,已有的Python基礎上,安裝另外一個,相對最新的Python

當然,其實如何只是為了學習Python,尤其是對於Python初學者來說,其實不必再安裝另外一個版本的系統

此處,只是為了,對於以後覺得有必要的時候,比如需要更新版本的Python,利用其中更好的功能等,而去安裝另外一個更新版本的Python

下面就來解釋,如何在Linux類系統中,安裝另外一個,更新版本的Python

 

 

3.3. 如何在Mac中安裝Python

由於Mac系統的基本架構,和Linux系統,比較類似

所以,關於如何在Mac上安裝Python

其實是和上面已經介紹的,在Linux中安裝Python,其原理和步驟,都是類似的

 

 

第 4 章 選擇合適的Python開發環境

摘要

本章主要講解,在安裝了Python之後,針對開發環境的概念,進行深入淺出的介紹,

最原始的開發環境以及常見的IDE開發環境的關係如何,以便使得讀者真正瞭解到各種開發環境的內在關係和優缺點,

才能真正幫助讀者選擇合適自己的開發環境,提高自己的開發效率。

 

4.1. 如何在Windows環境下開發Python

此部分內容的目的:

希望對於,如何在Windows下,寫Python程式碼,進行Python開發,執行Python指令碼的人,看了此部分內容後,懂得了:

  • 什麼是cmd下面去執行Python指令碼
  • 什麼是Python的互動式的shell
  • 什麼是Python的IDE

 

看此部分內容之前,需要具有以下前提:

下面,通過最簡單的Python程式碼,此處只是列印一些Python版本資訊和系統資訊:

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Function:
【整理】如何在Windows下開發Python(如何執行Python指令碼)
 
http://www.crifan.com/how_to_do_python_development_under_windows_environment
 
Author:     Crifan Li
Version:    2012-12-06
"""
  
import platform;
  
pythonVersion = platform.python_version();
uname = platform.uname();
  
print "Just for demo how to do python development under windows:";
print "Current python version info is %s"%(pythonVersion);
print "uname=",uname;

    

來說明,如何在Windows下,進行Python開發。

 

4.1.1. Python的最原始的開發方式是什麼樣的

相對來說,最原始的,最基本的,開發Python的方式,只是:

4.1.1.1. 找個文字編輯器,新建個.py檔案,寫上Python程式碼

Python程式碼,本身就只是文字;

所以,從原理上來說,只需要找個合適的文字編輯器,即可;

換句話說,如果只是簡單的寫寫幾行Python程式碼,你用Windows的記事本(Notepad),都是可以的;

只不過,由於Notepad功能太弱,所以在此個人推薦Notepad++。

[提示] 為何推薦用Notepad++去寫Python程式碼

此處,推薦用Notepad++去寫Python程式碼,做Python開發,的原因

除了本身Notepad++作為文字編輯器,好用之外,

還有一個,相對來說,比較重要的問題:字元編碼

很多時候,由於Python開發者對於Python檔案的編碼,不太瞭解

導致在開發期間,出現很多,相對比較常見的字元編碼的問題

所以,為了,更加深入的瞭解和學習,真正的掌握Python

有必要,從一開始學習Python的時候

就選用合適的工具,這樣,避免後期,一些該知道的細節,尤其是檔案的編碼,不知道

而犯各種常見的錯誤

 

而關於Notepad++本身,不會使用,不熟悉,則可參考:

【crifan推薦】輕量級文字編輯器,Notepad最佳替代品:Notepad++

關於Notepad++的幾乎一切的內容,都可以在上述的教程中找到。

 

 

 

此處呢,對應的就是:

用我所推薦的Notepad++,新建一個檔案,然後包括程式碼進入,存為對應的一個.py的檔案。

而關於如何操作,此處也一點點截圖,透徹的說明一下:

此處再次提示一下,一下Notepad++的所有功能,特性,用法,上面那個帖子中,都有專門的介紹。

想要更加詳細瞭解的相關的Notepad++的某個特定功能的用法的,自己去看即可。

下面的截圖,就不再事無鉅細的解釋Notepad++的功能特點了。只是截圖解釋如何操作而已。

開啟Notepad++後,點選新建,新建出一個新的檔案:

然後把上面給你們的程式碼,拷貝進去,就變成了:

此處由於是新建的空白檔案,所以Notepad++,不知道你是Python程式碼,沒法幫你自動實現語法高亮,

需要手動去設定一下:

語言PPython

就可以看到Python程式碼的語法高亮的效果了:

然後去儲存到某個位置。

檔案另存為

在彈出的對話方塊中,輸入要儲存的檔名:demoRunPythonUnderWindows

提示:其中可以看到Notepad++自動幫你寫好了.py字尾,那是因為你之前設定了Python語法高亮。

然後再選擇對應的路徑去儲存:

[警告] 路徑中不要包含(中文,空格等)特殊字元

對於儲存檔案來說,需要注意的是:

Python,以及其他語言,開發期間,最好都不要讓路徑中帶有特殊字元

此處所謂的特殊字元,指的是非(ASCII)英文字元,主要包括:

  • 中文字元
  • 空格
  • 其他特殊字元

而只包含普通的英文字元,即字母數字下劃線。

比如,我此處的路徑,用的是:

E:\Dev_Root\python\how_to_dev_python\

否則,很容易在後期開發期間,出現一些異常現象

比如找不到檔案,資料夾等問題

以及常見的中文路徑無法識別等問題。

儲存好後,就是這樣的了:

 

4.1.1.2. 開啟Windows的cmd,並且切換到對應的python指令碼所在目錄

且換到對應的,Python檔案所在的,資料夾,有兩種辦法:

4.1.1.2.1. 方法1:手動開啟cmd,並cd到對應路徑

而對於,什麼是windows的cmd,如何開啟cmd,如何切換到對應的路徑等內容,不熟悉的話,可以去參考:

Windows的命令列工具: cmd

4.1.1.2.2. 方法2:通過Notepad++的Open current dir cmd

此處,使用一個更方便的辦法,利用Notepad++中功能,直接開啟cmd,並切換到對應路徑:

然後就直接實現,開啟了cmd,並且切換到對應的當前檔案所在路徑了:

 

4.1.1.3. 在cmd中去執行你的Python指令碼(.py檔案)

然後就是,在cmd中,輸入你的Python指令碼,即.py檔案的完整的檔名。

此處是:

demoRunPythonUnderWindows.py

[提示] 利用TAB鍵實現自動輸入

正常的是通過手動輸入對應的Python的完整的檔名,即,對於此處的demoRunPythonUnderWindows.py,一個個字母的輸入

不過,此處有個小技巧,可以利用Windows(和Linux中通用的)Tab鍵,然後會自動顯示出你當前目錄的檔案;

如果當前資料夾有多個檔案,多次按Tab鍵,會在多個檔案之間切換。

此處就一個檔案,所以通過按Tab鍵,就可以一下子就顯示出對應的整個檔名了:

然後輸入回車,即可執行對應的Python指令碼,接著在cmd中也就可以看到輸出的結果了:

 

 

如此,就是一個,完整的,在windows的cmd中,執行Python指令碼的流程了。

而接下來,作為正常的開發Python的流程就只是:

  • 你繼續去修改你的Python程式碼,新增新的程式碼,然後儲存python檔案,

  • 再回到cmd中,重新再次執行Python,以驗證程式執行是否正常,是否獲得了你所期望的結果。

  • 如此反覆,一點點,由少到多,一點點寫出足夠複雜的Python程式碼,實現你的複雜的功能。

4.1.2. 利用Python的shell進行互動式開發又是什麼樣的

Python有個shell,提供一個Python執行環境。方便你互動式開發。

即寫一行程式碼,就可以立刻被執行,然後方便檢視到結果。

而Python的Shell,在Windows環境下,又分兩種:

  • Python (command line)
  • IDLE (Python GUI)

下面分別介紹一下。

 

4.1.2.1. 命令列版本的Python Shell – Python (command line)

Windows下,安裝好Python後,你可以在開始選單中,找到對應的command line版本的Python Shell的:

其實,Win7中,有個更方便的方式,直接在搜尋框中搜python,即可找到:

開啟後,就是這個樣子的:

其中可以顯示出來對應的python版本資訊和系統資訊。

然後就是三個大於號>>>接下來,你就可以像在之前所說的,

普通文字中輸入python程式碼一樣,在此一行行輸入程式碼,然後就可以顯示對應的資訊了:

[提示] 為何叫做互動式shell (interactive shell)

其中可以看到,當你輸入對應的,第一行print時,此處命令列(command line)版本的Python Shell中,

就可以,動態的,互動式地,顯示出對應的資訊了。

正由於,此處可以,直接地,動態的,互動性式地,顯示出對應的資訊,

所以,才被叫做Python 的互動式的Shell,簡稱Python Shell。

對應的,把前面的程式碼都輸入完畢,結果顯示為:

 

4.1.2.2. 帶圖形介面的Python Shell – IDLE (Python GUI)

下面將要介紹的,同樣是Python的Shell,但是是相對於command line版本而言,是GUI,帶圖形介面的版本的。

對應的開啟方式,和上面類似,可以直接搜python而找到:

對應的,可以看到,其名字寫的是IDLE

開啟後就是這樣的:

[提示] IDLE左上角的紅色TK圖示表示IDLE是用Tkinter圖形庫開發的

左上角的紅色圖示,好像是TK,是圖形介面庫的一種。

這個就是,很多Python教程中,

所常用來作為Python的開發環境,教別人寫Python程式碼的那個IDLE。

關於Python中的Tkinter圖形庫,詳見:

【整理】Python中的圖形庫

中的:

【記錄】折騰Python中的Tkinter

對應的,輸入上述的程式碼,結果也是類似的:

 

[警告] IDLE中一次性貼上多行程式碼再執行則會出錯

如果你對於IDLE的執行方式:互動式的,一行一行的輸入,才能正常執行

不熟悉的話,作為新手,有些人會犯這樣的錯誤:

在別處拷貝Python示例程式碼,然後一次性的貼上多行程式碼到IDLE中

然後輸入回車去執行:

結果,很明顯,會出錯:

此處是不能正常輸入,之前所期望的python版本資訊,

而是出現其他異常情況:只是顯示此處的註釋程式碼

(因為此處最開始部分的程式碼,就只是註釋程式碼)

(如果你是其他的多行程式碼,則對應的就是出現其他對應的錯誤了)

而,如果想要正確的執行程式碼,

則應該和之前一樣,正常的,一行一行的輸入程式碼,並回車,去執行

才能正常的,顯示出你所希望看到的資訊

 

4.1.2.3. 關於(command line或GUI版本的)Python Shell的用途

而作為一般的Python開發的話,則很少有用這個Python Shell的,不論是command line的還是GUI版本的IDLE。

其比較適合用來測試,演示一些簡單的程式碼的執行的效果。

好處是很方便,可以立刻看到程式碼執行的結果。

所以,結論就是:

對於python的shell,不論是command line版還是GUI版,都比較適合偶爾要測試少量的Python程式碼的情況下去使用,而不適合長期的開發Python。

例 4.1. 舉例:用Python的IDLE去做URL解碼

比如我之前就是借用Python的一些庫函式,實現一些對於url解碼的功能:

【已解決】在用google搜尋出來的連結無法開啟的情況下,如何找到該連結的真實地址


 

4.1.3. 利用第三方Python的IDE進行Python開發又是怎麼回事

[提示] 什麼是IDE

關於IDE的基本概念,不瞭解的先去看:

【整理】什麼是IDE

即:

公式 4.1. 什麼是IDE

IDE

= 整合開發環境

= 把開發相關的各種環境(和工具)都整合到一起


而Python的IDE,就是:

公式 4.2. 什麼是Python的IDE

Python IDE

= Python的整合開發環境

= 把和Python開發相關的各種工具

  • Python程式碼編輯器:替代你前面用的Notepad++等文字編輯器
  • Python的執行環境:模擬或替代:Python的(命令列或GUI版本的,互動式)shell

整合在一起

另外再加上各種檔案,程式碼,專案的組織,管理等方面的各種功能

以此去方便你執行對應的Python程式碼,

方便你進行Python專案的開發


 

4.1.3.1. 為何會有Python的IDE

而之所以會有Python的IDE的誕生,也很容易理解。

就是因為,如果開發Python過程中,寫Python程式碼,除錯Python程式碼,查詢相關的函式的解釋等等操作,

如果都是基於前面介紹的,用Notepad++等編輯器去編輯Python程式碼,寫完程式碼了,再切換到windows的cmd中去執行,

往往覺得很麻煩。

尤其是大型專案的話,可能就更加顯得不那麼高效;

以及對應的需要一些額外的功能,比如除錯複雜的Python程式碼,需要一點點跟蹤除錯,找到錯誤的根本原因等等。

上述的開發模式,就更顯得力不從心。

所以,才會有:

Python發展到現在,已經有了很多第三方的,別人開發的,可以用於或者專門用於Python開發的一些整合開發環境,即Python的IDE。

 

4.1.3.2. 目前常見的一些Python的IDE

參考別人的一些討論和總結:

【python】【求助】關於python編輯器的選擇

python編輯器對比和推薦

羅列幾個,相對用的比較廣泛的(排名不分先後):

  • Ulipad
  • PyScripter
  • Wing IDE
  • Eclipse + pydev外掛

關於其中的一些IDE的效果,可以參考:

【整理】各種Python的IDE(整合開發環境)的總結和對比

 

4.1.3.3. Python的IDE和Python程式碼編輯器,Windows的cmd,等的關係

下面,隨便找了一個Python的IDE,

比如

【記錄】使用Python的IDE:PyScripter

通過截圖來對比性的解釋,

這樣你就更容易理解Python的原始開發環境和Python的IDE之間的關係了:

這下,至少你應該對於:

  • Windows的cmd
  • Python的Shell
    • command line版本
    • GUI版本:IDLE
  • Python的IDE

三者之間的關係,有個大概的認識了。

 

4.1.3.4. 使用IDE時所遇到的一些常見的問題

4.1.3.4.1. IDE只能夠開啟了檔案,並不代表就已經在shell中執行了該檔案

這裡有一個錯誤的例子,比如這裡所遇到的:

如圖,其在當前的IDE中,開啟了一個.py檔案:balanced_color_module.py

按照正常的邏輯,應該到選單中去執行程式碼,然後再去對應的console中(此處估計是Debug I/O),去檢視執行的結果。

但是,很明顯,對於此處的那個py檔案(balanced_color_module.py),即使執行該檔案,也不會有什麼print輸出資訊

另外,其此處沒有開啟對應的console,而是開啟的是Python Shell,所以從邏輯上就是:

其在Python Shell中輸入的任何程式碼,本質上和你當前IDE中所開啟的py檔案,都沒有半毛錢關係的。

所以導致的結果就是,雖然在Python Shell中輸入了一些程式碼:

color = {"red":0.2, "green":0.4, "blue":0.4}
balanced_color(color);
                

但是結果卻出錯,找不到對應的balanced_color函式。

所以,也就在常理之中,預料之內了。

因為,此時其所做的事情是:

使用了IDE,但是並沒有使用IDE中整合的終端除錯輸出

卻另外開啟了Python Shell,

而由於此處的IDE中開啟的程式碼,和Python Shell沒有半毛錢關係,所以才會執行程式碼出錯,找不到對應的函式的。

 

4.1.3.4.2. 需要注意,確保有可以執行的Python起始部分的程式碼

比如這裡遇到的問題是,通過IDE中執行Python程式碼,但是沒有響應:

其所遇到的問題,其實本質上,和IDE沒有關係,但是不熟悉Python的人,還是容易在IDE中犯這類問題的。

錯誤原因是:

沒有起始程式碼可以執行;

解決辦法是:

把上面最後一行的

   start();

去掉縮排,頂行寫,變成:

start();

就可以了。使得Python可以執行到對應的start函式了。

當然,最好的寫法是,把:

start();

再改為:

if __name__ == "__main__":
   start();
                

具體的解釋,參見:

【整理】Python中的__name__和__main__含義詳解

 

 

 

4.1.4. 總結:到底使用哪種環境去開發Python

一句話:

各取所需。根據自己的需求,決定用什麼開發環境。

 

4.1.4.1. 對初學者的建議:如何選用Python的開發環境

再加一句:

針對初學者,我個人倒是建議使用第一種,即windows的cmd下,去執行python指令碼

目的很明確:

很多東西的學習,其本質上,都是需要一個循序漸進的過程的,學習Python語言同樣如此。

在沒有學會走路,即如何搞懂Windows的cmd下執行Python指令碼,

就想學會跑了,即直接利用Python的IDE,包括shell和第三方開發環境,

結果就是,很多東西,還是不明白到底是為什麼,理解的不透徹。

而當Python的基本知識,基本開發流程熟悉了之後,再建議你去使用第三方的Python的IDE,到時候,才能算是用著很爽。

即:

  1. 先:Windows的cmd + Notepad++
  2. 再:選用某個IDE,比如PyScripterUlipadEclipse+PyDev等。

 

 

4.1.5. 如何在Windows環境下使用Python指令碼

首先要說明的是,據我目前的瞭解,對於一般Windows的使用者來說,想要使用已有的Python指令碼的話,主要有兩種形式可以使用。

  1. 直接執行文字式的Python指令碼檔案

    我們所常見的,多數的Python指令碼,都是此形式的。而關於Python指令碼,其實就是一個文字檔案,你可以用任何一個文字編輯器,比如windows的Notepad.exe來開啟對應的字尾名為.py的檔案,比如我所釋出的,用於部落格搬家到wordpress的Python指令碼BlogsToWordpress.py

    而對於在Windows的命令列,即cmd下執行Python指令碼,用起來,就是這個樣子的:

    圖 4.1. 在Windows下的cmd下面執行Python指令碼的樣子

    在Windows下的cmd下面執行Python指令碼的樣子

    [注意] Windows的cmd下執行Python指令碼,不是在Python的Command Line工具下執行Python指令碼

    對於此用法不太熟悉的新手,需要注意一點的是,不要把,在Windows下的cmd中執行Python指令碼,和在Python(安裝好後自帶有的)Command Line去寫Python程式碼,執行Python程式碼,相混淆了

    對於Python的Command Line,以我此處Python 2.7為例,是從開始選單中找到的:開始選單 ⇒ Python 2.7 ⇒ Python (Command Line),如圖:

    圖 4.2. 開始選單中找到的Python (Command Line)

    開始選單中找到的Python (Command Line)

    其開啟後的效果如下:

    圖 4.3. Python (Command Line)的介面

    Python (Command Line)的介面
  2. 使用Python指令碼釋出者封裝好的,可以獨立執行的Python指令碼對應的可執行檔案

    此用法,必須要Python指令碼釋出者,專門在寫完Python指令碼的時候,專門去用相應的工具,將Python的文字檔案,封裝成可以脫離Python執行環境,可以獨立執行的可執行檔案。說白了,就是一個exe可執行檔案,而執行此exe檔案,不需要安裝Python,即可執行。

4.1.5.1. 如何在Windows下的cmd中執行BlogsToWordpress.py

下面,以Win7為例,通過專門錄製的gif動畫,來說明,如何在Windows的cmd中,執行我的一個Python指令碼:BlogsToWordpress.py

圖 4.4. 動畫演示如何在Windows的cmd中執行Python指令碼BlogsToWordpress.py

動畫演示如何在Windows的cmd中執行Python指令碼BlogsToWordpress.py

[提示] 提示

上述gif動畫演示,只支援HTML在瀏覽器中的顯示。其他格式輸出中,比如PDF中,不支援此gif動畫。所以下面再用文字解釋一下大概流程:用文字解釋如何在Windows的cmd中執行Python指令碼BlogsToWordpress.py

如果你是在非HTML格式,比如PDF等,中檢視此文,想要看動畫的話,猛擊動畫演示如何在Windows的cmd中執行Python指令碼BlogsToWordpress.py

用文字簡述就是:

用文字解釋如何在Windows的cmd中執行Python指令碼BlogsToWordpress.py. 

  1. 開啟Windows的命令列環境cmd

    開始 ⇒ 在"搜尋程式和檔案"的位置,輸入cmd,win7會自動搜尋到cmd,點選其以開啟cmd

  2. 切換到對應的你的Python指令碼所在位置

    可以先去拷貝你的Python指令碼所在的路徑,此處為:

    E:\Dev_Root\svn_dev_root\website\python\BlogsToWordpress

    ,然後在cmd中輸入

    E:
    cd E:\Dev_Root\svn_dev_root\website\python\BlogsToWordpress
                                

     

  3. 輸入指令碼名(及引數),以執行Python指令碼

    輸入相應的python指令碼命令:

    BlogsToWordpress.py -s http://blog.sina.com.cn/lifecoaching

    然後回車執行該指令碼

4.2. 如何在Linux環境下開發Python

介紹如何在Linux環境下執行Python指令碼

如何進行Python的開發

 

4.3. 如何在Mac環境下開發Python

Mac下本身已經安裝了Python,所以不需要額外安裝Python,就可以直接在終端Terminal下去執行Python了。

在Mac下執行Python指令碼的方法如下:

圖 4.5. 在Mac下的Terminal中執行Python指令碼:BlogsToWordpress

在Mac下的Terminal中執行Python指令碼:BlogsToWordpress

第 5 章 Python的基本語法和基礎知識

摘要

本章主要講解讀者在擁有了自己的開發環境後,需要繼續深入學習的Python的基本語法和Python中的一些基本的概念。

 

此處只介紹,最基本的一些Python的語法,和其他一些基礎知識。

5.1. 一張圖片入門Python

之前已有別人整理了,一張圖入門Python,快速瞭解各種基本的語法。

英文版:

圖 5.1. Quick Python Script Explanation

Quick Python Script Explanation

中文版:

圖 5.2. 一張圖入門Python中文版

一張圖入門Python中文版

 

 

5.2. Python中的2.x版本和3.x版本

在具體介紹,如何下載Python,安裝Python,進行Python開發之前,一個不得不先要解釋的話題就是,Python中的版本的問題。

主要包括2.x系列的和3.x系列的,兩者不相容。

下面詳細解釋一下。

關於兩種版本的對比,也常寫成為:

  • Python 2.x vs Python 3.x
  • Python 2 vs Python 3
  • py2 vs py3

 

抽空參考:

https://wiki.python.org/moin/Python2orPython3

去整理一下版本的歷史。

 

5.3. Python檔案編碼宣告

之所以要在介紹Python的語法之前,先去說明這個Python檔案的編碼宣告,

那是因為,更多的Python初學者,對於去參考別人寫的Python的檔案中的程式碼的時候,

前幾行,就是看到的這部分,

所以,需要先介紹這部分的內容,

使得能在真正開始參考學習Python程式碼之前,就對於檔案編碼宣告這部分的內容,有個清晰的認識

待整理:

【整理】關於Python指令碼開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定檔案編碼型別

 

 

5.4. Python中的縮排

此處在介紹Python的基本的變數定義等內容之前,需要詳細的介紹,關於Python中的縮排

因為,此縮排不僅僅是美觀問題,而且還決定了程式碼的邏輯層次,決定了程式碼的含義

 

TODO:新增提示,關於別的語言中,一般來說,程式碼的縮排與否,都是為了程式碼更美觀,可讀性更好,而此處的Python特殊:縮排直接決定了程式碼的內在邏輯含義。

 

【教程】詳解Python中程式碼縮排(Indent):影響程式碼的內在邏輯關係和執行結果

5.5. Python中基本變數的宣告和定義

Python中基本的變數的宣告和定義,初始化,使用

包括:整型,字串,等等等等

 

5.5.1. Python中變數的作用域

【整理】Python中變數的作用域(variable scope)

 

5.5.2. Python中變數與C語言中的變數對比

對於很多人,在開始學習Python之前,往往都是有了一定的C語言的基礎

而對於C語言,是其他很多語言,比如C,C#等語言的基礎,且其他這類語言,其語法,從巨集觀上來說,

尤其是變數定義和使用,都是相對很類似的

所以,為了使具有了其他語言,尤其是C語言,基礎的人,更好的對於Python中的變數有個更深入的瞭解

此處,專門將Python中的變數,和C語言中的變數,進行對比說明:

TODO:新增對比說明

 

 

5.6. Python中的分支結構

寫程式,會遇到分支判斷

Python也不例外

此處介紹,if/else,switch/case,try/catch等等結構的含義和寫法

 

5.7. Python中的函式

寫程式 要有良好的習慣

當程式碼量相對多了,某些程式碼屬於一個功能集合的時候,就應該去將這部分程式碼,單獨組織到函式裡面了

下面介紹Python中的函式的語法和呼叫

 

5.8. Python中的物件導向程式設計

Python中有些語法,是和麵向物件程式設計相關的,比如:

【整理】Python中:self和init__的含義 + 為何要有self和__init__

其實,這些部分的內容,如果你是和筆者類似:

只是用到Python的一些去實現一些自己需要的功能,其實可能,用不到這部分的內容

比如我之前用Python實現爬蟲的時候,從頭到尾,其實一直就沒太涉及這部分,關於物件導向方面的內容。

 

第 6 章 繼續學習Python的思路和方法

摘要

本章主要去繼續學習Python的時候,如何去學習,嘗試教給讀者一種思路,以達到授人魚更授人以漁的目的。

這樣,即使以後不看筆者的教程,具有了Python的基本知識和學習思路,也就可以靠自己繼續學習了。

此處只介紹,在瞭解了基本的Python的開發知識之後,接下來,想要進一步開發,如何去做,如何學習。

目的在於,掌握了基本的學習方法後,就可以自己去一點點學習更多細節的東西了。

6.1. 如何繼續深入學習Python

【整理】如何學習Python + 如何有效利用Python有關的網路資源 + 如何利用Python自帶手冊(Python Manual)

最好有個目的

即,基於一定的興趣導向,尋找一個合適的目標

比如自己給自己找個合適的任務,要實現一定的功能,最好是能滿足自己或他人的實際需求的目標

如此,繼續利用相關資源,邊學邊寫,

即一邊慢慢搞清楚,需要實現相關的功能,大致思路和要做的事情有哪些,

一邊將實際的思路,用真正的Python程式碼去實現出來

其中遇到相關的Python的基本語法,庫的使用,函式的介面等等細節問題

再去參考相關的API手冊說明,一點點學習並寫出自己的Python程式碼

舉例:

我之前自己就是:

由於需要實現部落格搬家,把之前我自己在網易163部落格,騰訊的QQ空間,百度的hi空間等等地方的,N多個部落格的內容,

都要遷移到我自己的新建的個人網站中

由此:首先是找到了,真實存在的個人需求,需要去解決

然後再去學習和了解,所涉及到的技術,是和網路爬蟲有關的

然後再去參考別人寫網路爬蟲的相關的程式碼

其中用到了經典的urllib等等庫函式,

然後再去參考Python自帶手冊,一點點學習其詳細的語法

最終,從無到有,一點點搞懂了:網路爬蟲的實現邏輯,如何用Python實現網路爬蟲,Python中和網路處理相關的庫函式的使用

由此:最終算是,對於Python語言,有了更進一步的瞭解,明白並掌握了常見的語法,基本的庫函式,基本概念的處理,尤其是字串等方面的棘手問題

 

 

第 7 章 Python常見問題及解答

摘要

本章主要解釋在Python學習期間,常見的一些問題,探討問題原因,給出解決答案和思路

7.1. 在window的cmd中執行python結果卻呼叫了文字編輯器去開啟了,而不是去呼叫Python解析器去執行python檔案

7.1.

在window的cmd中執行python結果卻呼叫了文字編輯器去開啟了,而不是去呼叫Python解析器去執行python檔案

 

TODO:驗證下面的推斷是否正確。

 

估計是,在安裝Python時:

圖 7.1. 安裝Python時選擇Register Extensions

安裝Python時選擇Register Extensions

沒有選擇Register Extensions,從而導致之後在cmd中執行py檔案,結果被其他預設的文字編輯器去開啟,而不是執行Python指令碼檔案了。

 

又或者是:

在安裝其他文字編輯器,比如Notepad++,然後預設註冊了py字尾

導致開啟Python的py檔案時,預設是呼叫,預設開啟程式,此處為Notepad++去開啟。

第 8 章 Python相關資源

摘要

此處整理一些Python的學習資料。

TODO:整理更多的有價值的參考資料。

此處記錄一些不錯的Python相關的資料,供需要時參考:

相關文章