跳轉到內容

A-level 計算機/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 的重要空白字元可能使使用空格鍵或 Tab 鍵輕鬆地破壞工作方法。

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 Tools for Visual Studio,它 免費 並且適用於現有的 Python 2.x 和/或 3.x 安裝。這使您能夠以與 Visual Studio 使用其他語言相同的方式獲得語法高亮、Intellisense、除錯、程式碼摺疊、型別提示等。

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 原始碼支援的嵌入式文件形式。有許多工具可用於從包含 docstring 的原始碼生成可讀文件,包括 pydoc (在標準庫中)、EpydocdoxygenSphinx

對於網站建立,Python 是 LAMP 中的另一種“P”。(與 Perl 和 PHP 一樣,Python 與 LinuxUnixApache HTTP ServerMySQL 很好地整合在一起。)

線上資源

[編輯 | 編輯原始碼]

如果您已經精通另一種程式語言,官方教程將使您快速掌握。即使您不是程式設計師,這種快節奏、無花哨的介紹也將讓您快速學習用 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
線上免費獲取
遊戲


華夏公益教科書