首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》25.4 其他 Python 模块

关灯直达底部

我们已经讨论过几个 Python 模块:Pygame、PythonCard 和 EasyGui。还有很多 Python 模块可以用来完成各种各样的工作。下面列出几个你可能想了解的模块。

Turtle

对小读者来说,turtle 模块可能很有意思。Turtle 图形是一种编程方法,你要向一个小字符(turtle)发出命令[比如 forward(前进),left(向左),right(向右),speed(加速)等]来控制它的动作。现在 Turtle 图形已经用来教小孩子使用一种 Logo 语言学习编程,turtle 模块把 turtle 引入到 Python。Gregor Lingl 开发了 turtle 的一个更新版本,名叫 xturtle,可以在这里了解更多信息:http://xturtle.rg16.at/。

turtlexturtle 模块提供了与 LOGO 类似的命令。不过如果你想在 Python 中使用真正的 Logo 命令,可以使用 PyLogo,利用这个模块,你能够从 Python 程序使用 LOGO 命令完成 turtle 图形类编程。PyLogo 的主页是 www.pylogo.org。

还有一个模块叫做 RUR-PLE,它使用 Python 控制一个名为 Reeborg 的机器人,并在屏幕上移动。这与 Logo 或 Turtle 的思想是类似的,可以在这里了解更多有关信息:rur-ple.sourceforge.net/en/rur.htm。

VPython

如果你想尝试用 Python 建立一些三维(3D)图形,首先应该看看 Vpython(Visual Python 的简写)。利用这个模块可以很容易地建立 3D 对象,并且可以用鼠标在一个 3D 场景中移动。下面是一个简单的例子,这里只用几行代码就可以建立一个反弹的球:

from visual import *scene.title = "Bouncing Ball"scene.background = (1,1,1)scene.center = (0, 5, 0)scene.autoscale = Falsefloor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)ball = sphere (pos=(0,6,0), radius=1, color=color.red)ball.velocity = vector(0,-2,0)dt = 0.01while 1:    rate (100)    ball.pos = ball.pos + ball.velocity*dt    if ball.y < ball.radius:        ball.velocity.y = -ball.velocity.y    else:        ball.velocity.y = ball.velocity.y - 9.8*dt

这个代码可以建立右图这样的场景:

球在“地板”上下反弹。用户可以旋转场景,还可以用鼠标放大和缩小场景。(不过,安装 VPython 前这个代码不起作用,这本书的安装程序中没有包含这个模块。)你可以在这里了解关于 VPython 的更多内容(包括如何安装):

www.vpython.org.

PyWinAuto

如果你在使用 Windows,想用 Python 控制其他程序,可能想看看 Pywinauto。这个模块允许你编写 Python 程序从而通过模拟鼠标点击、键入文本等与其他 Windows 程序交互。可以在这里找到有关的更多信息:pywinauto.pbwiki.com。这是一个更深层次的话题。

Win32com

这个模块同样只面向 Windows 用户,win32com 模块允许 Python 程序与其他 Windows 程序直接交互。你可以完成一些直接交互,比如打开电子表格并改变单元格中的值。win32com 是一个更大的包(名为 pywin32)中的一部分。可以在这里找到更多相关信息:python.net/crew/mhammond/win32。这也是一个更深层次的话题,如果你想用 Python 完成 Windows 编程,可能需要一本专门的书,比如 Mark Hammond 和 Andy Robinson 写的 Python Programming on Win32。

传承 BASIC

你可能注意到这样一种现象,如果在图书馆找书,可以找到 20 世纪 80 年代为孩子们写的一些编程书,而且其中很多书都使用了一种名为 BASIC 的语言,这在当时相当流行。(现在你还能得到面向现代计算机的一些 BASIC 版本,包括面向 Windows 的 QBASIC 和 BBC BASIC。)这些书里往往有很多游戏。如果把这些古老的 BASIC 书中的游戏用 Python 重写可能很有意思。如果需要,你可以使用 Pygame 或 PythonCard 来帮助完成图形部分。我保证这样会让你大有收获!