A-level 計算機科學 2009/AQA/Python
Python 是一種免費的多平臺程式語言。它最初的用途和優勢是作為一種指令碼語言,用於自動化 Unix 系統的管理。核心語言和標準庫自那時起已擴充套件到許多其他用途,包括網路、資料庫、互動式和圖形應用程式。
Python 的參考實現,CPython,幾乎可以在任何地方執行,並且在 Linux、Unix、Mac OS X 和 Windows 上都得到了很好的支援。許多免費的文字編輯器提供語法高亮、程式碼補全、類導航、偵錯程式整合和其他工具。因此,學生可以在家、工作或計算機俱樂部輕鬆地追求自己的興趣。
主要的實現(CPython、Jython 和 IronPython)是開源且免費的。CPython 包含在大多數 Linux 發行版中。
截至 2012 年,Python 是 Google 為其客戶提供的兩種主要語言之一,與 Java 一樣,用於其客戶 API。雖然在工業界不像 Java 和 VB 那樣流行,但它已被應用於各種就業領域。
Python 是解釋型的,因此試錯實驗和除錯速度很快。標準執行時還包括一個互動式控制檯,可以訪問正在執行的程式映像。
Python 具有廣泛的資料型別,包括內建型別和標準庫中的型別,儘管它們之間可能存在一些怪癖和不一致之處。例如,某些型別是 可變的,而其他型別是 不可變的。
Python 的顯著空白使不正確的巢狀 塊結構語句 容易被發現。
CPython 的虛擬機器是一個位元組碼直譯器,Python 的執行速度可能比在 HotSpot 虛擬機器上使用即時編譯執行 Java 快得多。
Python 的顯著空白可能使使用空格鍵或製表鍵很容易破壞工作方法。
Python 使用變數而不宣告資料型別,這在嘗試教授它們時可能會令人困惑。
在使用類時,python 不使用 public 和 private 關鍵字來指定對屬性和方法的訪問。它們是 可能的,但可能會讓學生感到困惑。
當您閱讀有關 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 模組,一些老師可能更喜歡它。例如,請參見
- http://www.brpreiss.com/books/opus7/html/page83.html 和
- http://stackoverflow.com/questions/176011/python-list-vs-array-when-to-use
檢查考試委員會更喜歡哪種陣列。
由於 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 在 Glade 和 PyGTK 的形式下也擁有一個不錯的 RAD(快速應用開發)工具。Python 的指令碼語言起源意味著它可以用於將 Unix 程式粘合在一起以建立一個應用程式。
可以從 PyPI http://pypi.python.org/pypi 匯入開源庫程式碼,作為教學示例或擴充套件實際專案,並使用 Python 中內建的包管理工具。
為了簡化一些文件的生成,學生可以學習 docstring,這是一種由 Python 原始碼支援的嵌入式文件形式。許多工具可用於從包含文件字串的原始碼生成可讀的文件,包括 pydoc(在標準庫中)、Epydoc、doxygen 和 Sphinx。
對於網站建立,Python 是 LAMP 中的另一個“P”。(與 Perl 和 PHP 一樣,Python 與 Linux、Unix、Apache HTTP 伺服器 和 MySQL 整合良好。)
如果你已經精通其他程式語言,官方教程可以幫助你快速入門。即使你不是程式設計師,這個快速、簡潔的介紹也能讓你快速學習 Python 程式設計,並且不會讓你感到過多的精神壓力!
- 官方 3.2 教程
- 官方 2.7 教程
- http://mit.edu/6.01/mercurial/spring12/www/handouts/readings.pdf MIT 一年級本科 CS 課程的免費資料,基於 Python。
- http://people.csail.mit.edu/pgbovine/python/ 線上 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 可線上免費獲取 |
遊戲 |