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 在线免费获取 |
游戏 |