跳轉到內容

A-level 計算機科學 2009/AQA/Python

來自華夏公益教科書,開放的書籍,開放的世界

Python 是一種免費的多平臺程式語言。它最初的用途和優勢是作為一種指令碼語言,用於自動化 Unix 系統的管理。核心語言和標準庫自那時起已擴充套件到許多其他用途,包括網路、資料庫、互動式和圖形應用程式。

為什麼選擇 Python?

[編輯 | 編輯原始碼]

Python 的參考實現,CPython,幾乎可以在任何地方執行,並且在 Linux、Unix、Mac OS X 和 Windows 上都得到了很好的支援。許多免費的文字編輯器提供語法高亮、程式碼補全、類導航、偵錯程式整合和其他工具。因此,學生可以在家、工作或計算機俱樂部輕鬆地追求自己的興趣。

主要的實現(CPython、JythonIronPython)是開源且免費的。CPython 包含在大多數 Linux 發行版中。

截至 2012 年,Python 是 Google 為其客戶提供的兩種主要語言之一,與 Java 一樣,用於其客戶 API。雖然在工業界不像 Java 和 VB 那樣流行,但它已被應用於各種就業領域。

Python 是解釋型的,因此試錯實驗和除錯速度很快。標準執行時還包括一個互動式控制檯,可以訪問正在執行的程式映像。

Python 具有廣泛的資料型別,包括內建型別和標準庫中的型別,儘管它們之間可能存在一些怪癖和不一致之處。例如,某些型別是 可變的,而其他型別是 不可變的

Python 的顯著空白使不正確的巢狀 塊結構語句 容易被發現。

為什麼不選擇 Python?

[編輯 | 編輯原始碼]

CPython 的虛擬機器是一個位元組碼直譯器,Python 的執行速度可能比在 HotSpot 虛擬機器上使用即時編譯執行 Java 快得多。

Python 的顯著空白可能使使用空格鍵或製表鍵很容易破壞工作方法。

Python 使用變數而不宣告資料型別,這在嘗試教授它們時可能會令人困惑。

在使用類時,python 不使用 public 和 private 關鍵字來指定對屬性和方法的訪問。它們是 可能的,但可能會讓學生感到困惑。

2.7 還是 3.x?

[編輯 | 編輯原始碼]

當您閱讀有關 python 的資訊時,您可能會了解到有兩種不同的版本。AQA 允許您使用任何一種,但哪一種最適合您?簡要總結一下

2.7 穩定,生命週期結束,沒有進一步更新,但可靠且部署廣泛,具有大量庫和學習資源。

3.x 是未來 - 正確地處理多語言文字,許多改進,但一些庫尚未轉換。

一些為 python 2.7 編寫的教程在 python 3.x 中不起作用,因為語言中有一些小的變化,例如 Python 2.x 中的 print 語句被 Python 3.x 中的 print 函式替換了。

print "hello world" #python 2.7
print("hello world") #python 3.x

您可以同時安裝兩者,它們可以很好地協同工作,但在選擇要學習的語言時,明智的做法是檢視可供學生使用的資源。

您可以獲得 行動式版本 的 python,它可以直接從 USB 執行,有 2.7 和 3.x 版本。

如果您想使用 Microsoft Visual Studio,您可以獲得 IronPython,它是 免費的,並且集成了 python 2.7。

Python 預裝在 樹莓派 上,並附帶開發工具和大量支援學習資源。

雖然一些使用者鼓勵學習者使用 Python 的內建 list 作為陣列,但標準庫包含 array 模組,一些老師可能更喜歡它。例如,請參見

檢查考試委員會更喜歡哪種陣列。

面向物件

[編輯 | 編輯原始碼]

由於 Python 沒有顯式宣告的概念,也沒有 PRIVATE 和 PUBLIC 關鍵字,定義類的語法與普遍接受的 AQA 語法有很大不同,例如,VB.NET 類

Class MediaFile
   Public
        Sub PlayFile
            ...
        End Sub
        Function GetTitle As String
            Return Title
        End Function
        Function GetDuration As Single
            Return Duration
        End Function
   Private
        Dim Title As String
        Dim Duration As Single
  End

與 2010 年 6 月的 COMP3 問題相當匹配

MediaFile = Class   
   Public
        Procedure PlayFile
        Function GetTitle
        Function GetDuration
   Private
        Title : String
        Duration : Real
  End

Python 版本看起來像這樣

class MediaFile
    def __init__(self):
        self.Title = ""
        self.Duration = 0.0

    def PlayFile:
        ...

    def GetTitle(self):
        return self.Title

    def GetDuration(self):
        return self.Duration

Python 可用於構建從網站到使用 pygame(v2.7)的遊戲的任何東西。 Blender 具有 python 指令碼引擎(3.x),這意味著可以建立涉及 3D 動畫的 專案。Python 在 GladePyGTK 的形式下也擁有一個不錯的 RAD(快速應用開發)工具。Python 的指令碼語言起源意味著它可以用於將 Unix 程式粘合在一起以建立一個應用程式。

可以從 PyPI http://pypi.python.org/pypi 匯入開源庫程式碼,作為教學示例或擴充套件實際專案,並使用 Python 中內建的包管理工具。

為了簡化一些文件的生成,學生可以學習 docstring,這是一種由 Python 原始碼支援的嵌入式文件形式。許多工具可用於從包含文件字串的原始碼生成可讀的文件,包括 pydoc(在標準庫中)、EpydocdoxygenSphinx

對於網站建立,Python 是 LAMP 中的另一個“P”。(與 Perl 和 PHP 一樣,Python 與 LinuxUnixApache HTTP 伺服器MySQL 整合良好。)

線上資源

[編輯 | 編輯原始碼]

如果你已經精通其他程式語言,官方教程可以幫助你快速入門。即使你不是程式設計師,這個快速、簡潔的介紹也能讓你快速學習 Python 程式設計,並且不會讓你感到過多的精神壓力!

華夏公益教科書上的其他 Python 書籍列在 Python 程式語言 下。

以下是一些有用的印刷書籍:

標題 ISBN 適合人群
Python 程式設計入門 (3.1) 978-1435455009 應用程式和遊戲
Python 程式設計進階 (2.7) 978-1435459809 應用程式和遊戲
深入 Python (2.7) 978-1590593561
可線上免費獲取
網站
Python 軟體設計: 如何像計算機科學家一樣思考 (2.7) 978-0521725965
可線上免費獲取
演算法和 CS 思維
用 Python 建立自己的電腦遊戲 (3.2) 978-0982106013
可線上免費獲取
遊戲


華夏公益教科書