跳转到内容

A-level 计算机/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 的重要空白字符可能使使用空格键或 Tab 键轻松地破坏工作方法。

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 Tools for Visual Studio,它 免费 并且适用于现有的 Python 2.x 和/或 3.x 安装。这使您能够以与 Visual Studio 使用其他语言相同的方式获得语法高亮、Intellisense、调试、代码折叠、类型提示等。

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 源代码支持的嵌入式文档形式。有许多工具可用于从包含 docstring 的源代码生成可读文档,包括 pydoc (在标准库中)、EpydocdoxygenSphinx

对于网站创建,Python 是 LAMP 中的另一种“P”。(与 Perl 和 PHP 一样,Python 与 LinuxUnixApache HTTP ServerMySQL 很好地集成在一起。)

在线资源

[编辑 | 编辑源代码]

如果您已经精通另一种编程语言,官方教程将使您快速掌握。即使您不是程序员,这种快节奏、无花哨的介绍也将让您快速学习用 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
在线免费获取
游戏


华夏公益教科书