《Python语言程序设计》——1.9 开始学习图形化程序设计

简介:

本节书摘来自华章计算机《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模块中定义的所有函数,这样就可以使用所有函数。


1abbabf1a352989ccd1aed328f64919e16d57412

3)输入下面的命令来显示Turtle的当前位置和方向,如图1-15a所示。

<a href=https://yqfile.alicdn.com/e9eb2fd22f20f58b62608ce83e58323be20de617.png
" >

使用Python Turtle模块进行图形化程序设计很像使用笔进行绘画。箭头表明笔的当前位置和方向。Turtle的起始位置在窗口的中心。此处,Turtle是指绘制图像的对象(对象将在第3章介绍)。
4)输入下面的命令绘制一个文本字符串:

<a href=https://yqfile.alicdn.com/8916284bff97f748e90650948c53238c8d130767.png
" >

你的窗口应该看起来如图1-15b所示。
5)输入下面的命令将箭头向前移动100像素,向箭头所指的方向绘制一条直线:

<a href=https://yqfile.alicdn.com/cc5bfaee5e9689d1dbcffb724a2e34c2c6597288.png
" >

你的窗口应该看起来如图1-15c所示。
为了绘制图1-15中的其他部分,继续这些步骤。

<a href=https://yqfile.alicdn.com/31f784893a4cad8a81f75a8528d7d3c5ddd5bfa2.png"

图1-15 随着每个语句的执行动态地显示图形
6)输入下面的命令将箭头向右转90度,将Turtle的颜色改为红色,然后将箭头向前移动50像素,如图1-15d所示。


<a href=https://yqfile.alicdn.com/4a03588091f78e80540628ec55fab3de0bbef2fa.png
" >

7)现在,输入下面的命令将箭头向右转90度,将颜色设置为绿色,然后将箭头向前移动100像素来绘制一条直线,如图1-15e所示。

578e86ae61a8b92955e64d45c726dbb545bdc3b0

8)最后,输入下面的命令将箭头向右转45度,并将箭头向前移动80像素来绘制一条直线,如图1-15f所示。


<a href=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所示。

<a href=https://yqfile.alicdn.com/a045b0ac00f98731d881feb871f6a845e7d8351a.png
" >

也可以使用penup()和pendown()命令设置抬起或放下笔以控制移动笔时是否绘制一条线。例如:下面的命令将笔移到(50,-50),如图1-16c所示。


dc9025ebe6b58182f22c166595b418cfffeedd0b

可以使用circle命令绘制一个圆。例如:下面的命令设置颜色为红色(图1-16d)并且绘制半径为50的圆(图1-16e)。

<a href=https://yqfile.alicdn.com/a04b2b3e956482a2607e24615d8ee5dc0022184d.png
" >

1.9.3 绘制奥林匹克环标志
程序清单1-5给出绘制奥林匹克环标志的程序,如图1-17所示。
程序清单1-5 OlympicSymbol.py

b100fdf284432450f227786c1014efd4e6415029

程序导入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按章罗列出本书所有的关键术语以及对它们的描述。

相关文章
|
10月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
507 2
|
10月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
733 1
|
10月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1659 1
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
10月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
388 4
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
541 57
|
11月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异

推荐镜像

更多