本节书摘来自华章计算机《Python语言程序设计》一书中的第1章,第1.9节,作者:[美]梁勇(Y. Daniel Liang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.9 开始学习图形化程序设计
关键点:Turtle是Python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。它很容易学习并且使用简单。
初学者通常很喜欢通过图形学习程序设计。因此,我们在本书第一部分的很多章的最后都会用一节讲解图形化程序设计。但是,这些素材不是强制性的,可以跳过它们或者以后再涉及这些内容。
在Python中有多种编写图形程序的方法。一个简单的启动图形化程序设计的方法是使用Python内嵌的Turtle模块。本书后面将会介绍Tkinter来开发复杂的图形用户界面应用程序。
1.9.1 绘制图形并给图形添加颜色
下面的程序将演示如何使用Turtle模块。后续章节会介绍更多的特性。
1)在Windows“开始”菜单中选择Python(命令行)或者在命令提示符下输入“python”来启动Python。
2)在Python语句提示符“>>>”下输入下面的命令来导入Turtle模块。这个命令导入Turtle模块中定义的所有函数,这样就可以使用所有函数。
3)输入下面的命令来显示Turtle的当前位置和方向,如图1-15a所示。
https://yqfile.alicdn.com/e9eb2fd22f20f58b62608ce83e58323be20de617.png
" >
使用Python Turtle模块进行图形化程序设计很像使用笔进行绘画。箭头表明笔的当前位置和方向。Turtle的起始位置在窗口的中心。此处,Turtle是指绘制图像的对象(对象将在第3章介绍)。
4)输入下面的命令绘制一个文本字符串:
https://yqfile.alicdn.com/8916284bff97f748e90650948c53238c8d130767.png
" >
你的窗口应该看起来如图1-15b所示。
5)输入下面的命令将箭头向前移动100像素,向箭头所指的方向绘制一条直线:
https://yqfile.alicdn.com/cc5bfaee5e9689d1dbcffb724a2e34c2c6597288.png
" >
你的窗口应该看起来如图1-15c所示。
为了绘制图1-15中的其他部分,继续这些步骤。
https://yqfile.alicdn.com/31f784893a4cad8a81f75a8528d7d3c5ddd5bfa2.png"
图1-15 随着每个语句的执行动态地显示图形
6)输入下面的命令将箭头向右转90度,将Turtle的颜色改为红色,然后将箭头向前移动50像素,如图1-15d所示。
https://yqfile.alicdn.com/4a03588091f78e80540628ec55fab3de0bbef2fa.png
" >
7)现在,输入下面的命令将箭头向右转90度,将颜色设置为绿色,然后将箭头向前移动100像素来绘制一条直线,如图1-15e所示。
8)最后,输入下面的命令将箭头向右转45度,并将箭头向前移动80像素来绘制一条直线,如图1-15f所示。
https://yqfile.alicdn.com/1bfbf0769cdd61ca1faad1d1b97cfa764919f3db.png
" >
9)现在可以关闭Turtle图形窗口并退出Python。
1.9.2 将笔移到任何位置
当Turtle程序启动时,箭头在Python Turtle图形窗口的中心位置,它的坐标是(0,0),如图1-16a所示。你也可以使用goto(x,y)命令将turtle移动到任何一个特定的点(x,y)。
重启Python并敲入下面的命令将笔从(0,0)移动到(0,50),如图1-16b所示。
https://yqfile.alicdn.com/a045b0ac00f98731d881feb871f6a845e7d8351a.png
" >
也可以使用penup()和pendown()命令设置抬起或放下笔以控制移动笔时是否绘制一条线。例如:下面的命令将笔移到(50,-50),如图1-16c所示。
可以使用circle命令绘制一个圆。例如:下面的命令设置颜色为红色(图1-16d)并且绘制半径为50的圆(图1-16e)。
https://yqfile.alicdn.com/a04b2b3e956482a2607e24615d8ee5dc0022184d.png
" >
1.9.3 绘制奥林匹克环标志
程序清单1-5给出绘制奥林匹克环标志的程序,如图1-17所示。
程序清单1-5 OlympicSymbol.py
程序导入Turtle模块使用Turtle图形化窗口(第1行)。它将笔移到(-110,-25)(第5行),然后绘制一个半径为45的蓝色圆(第7行)。类似地,它绘制一个黑色圆(第9~13行)、一个红色圆(第15~19行)、一个黄色圆(第21~25行)以及一个绿色圆(第27~31行)。
第33行调用Turtle的done()命令,它可以导致程序暂停直到用户关闭Python Turtle图形化窗口。它的目的是给用户时间来查看图形。没有这一行,图形窗口会在程序完成时立即关闭。
检查点
1.36 如何导入Turtle模块?
1.37 如何在Turtle中显示文本?
1.38 如何向前移动笔?
1.39 如何设置新颜色?
1.40 不绘制任何东西时如何移动笔?
1.41 如何绘制一个圆?
1.42 程序清单1-5中第33行的turtle.done()的目的是什么?
关键术语
.py file(.py文件)
assembler(汇编器)
assembly language(汇编语言)
bit(比特)
bus(总线)
byte(字节)
cable modem(光缆调制解调器)
calling a function(调用函数)
central processing unit (CPU)(*处理器(CPU))
comment(注释)
compiler(编译器)
console(控制台)
dot pitch(点距)
DSL (digital subscriber line)(DSL(数字用户线))
encoding scheme(编码表)
function(函数)
hardware(硬件)
high-level language(高级语言)
IDLE (Interactive DeveLopment Environment)(IDLE(交互式开发环境))
indentation(缩进)
interactive mode(交互式模式)
interpreter(解释器)
invoking a function(调用函数)
line comment(行注释)
logic error(逻辑错误)
low-level language(低级语言)
machine language(机器语言)
memory(内存)
modem(调制解调器)
module(模块)
motherboard(主板)
network interface card (NIC)(网络接口卡(NIC))
operating system (OS)(操作系统(OS))
pixel(像素)
program(程序)
runtime errors(运行时错误)
screen resolution(屏幕分辨率)
script file(脚本文件)
script mode(脚本模式)
software(软件)
source code(源代码)
source file(源文件)
source program(源程序)
statement(语句)
storage device(存储设备)
syntax errors(语法错误)
syntax rules(语法规则)
注意:上面的术语都是在当前章节中定义的。补充材料I.A按章罗列出本书所有的关键术语以及对它们的描述。