A-level 計算機/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 的重要空白字元可能使使用空格鍵或 Tab 鍵輕鬆地破壞工作方法。
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 Tools for Visual Studio,它 免費 並且適用於現有的 Python 2.x 和/或 3.x 安裝。這使您能夠以與 Visual Studio 使用其他語言相同的方式獲得語法高亮、Intellisense、除錯、程式碼摺疊、型別提示等。
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 原始碼支援的嵌入式文件形式。有許多工具可用於從包含 docstring 的原始碼生成可讀文件,包括 pydoc (在標準庫中)、Epydoc、doxygen 和 Sphinx。
對於網站建立,Python 是 LAMP 中的另一種“P”。(與 Perl 和 PHP 一樣,Python 與 Linux、Unix、Apache HTTP Server 和 MySQL 很好地整合在一起。)
如果您已經精通另一種程式語言,官方教程將使您快速掌握。即使您不是程式設計師,這種快節奏、無花哨的介紹也將讓您快速學習用 Python 程式設計,並伴隨一定程度的心理痛苦!
- 官方 3.2 教程
- 官方 2.7 教程
- http://mit.edu/6.01/mercurial/spring12/www/handouts/readings.pdf 基於 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 線上免費獲取 |
遊戲 |