跳转到内容

A-level 计算机科学 2009/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 的显著空白可能使使用空格键或制表键很容易破坏工作方法。

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 预装在 树莓派 上,并附带开发工具和大量支持学习资源。

虽然一些用户鼓励学习者使用 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 源代码支持的嵌入式文档形式。许多工具可用于从包含文档字符串的源代码生成可读的文档,包括 pydoc(在标准库中)、EpydocdoxygenSphinx

对于网站创建,Python 是 LAMP 中的另一个“P”。(与 Perl 和 PHP 一样,Python 与 LinuxUnixApache HTTP 服务器MySQL 整合良好。)

在线资源

[编辑 | 编辑源代码]

如果你已经精通其他编程语言,官方教程可以帮助你快速入门。即使你不是程序员,这个快速、简洁的介绍也能让你快速学习 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
可在线免费获取
游戏


华夏公益教科书