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