用python写一个海龟游戏程序

第一个海龟程序

让我们使用海龟作图来编写第一个程序。在一个新的IDLE窗口中输入如下的代码并将其保存为SquareSpiral1.py(你也可以通过http://www.nostarch. com/teachkids/下载该程序以及本书中的所有其他的程序)。

SquareSpiral1.py

# SquareSpiral1.py - Draws a square spiral

import turtle

t = turtle.Pen()

for x in range(100):

t.forward(x)

t.left(90)

当运行这段代码的时候,我们会得到一幅漂亮整齐的图片(如图2-1所示)。

程序是如何工作的

让我们一行一行地分析这个程序,看看它是如何工作的。SquareSpiral1.py的第1行是注释。正如我们在第1章中所学过的,注释以一个井号(#)开头。注释允许我们在程序中写入给自己或以后可能阅读该程序的其他人一些提示。计算机不会阅读或试图理解井号之后的任何内容;注释只是让我们写出关于程序是做什么的一些说明。在这个例子中,我们将程序的名称以及针对其做什么的一个简单说明放入到注释之中。

第2行导入(import)了绘制海龟图形的功能。导入已经编写过的代码,这是编程工作的最酷的事情之一。如果我们编写了一些有趣并有用的程序,可以将其与其他的人分享,同时也可以自己重用它。尽管海龟作图最初源自20世纪60年代的Logo编程语言[1],但一些很酷的Python程序员构建了一个库(library,库就是可以重用的代码的一个集合),来帮助其他程序员在Python中使用海龟作图。当我们输入了import turtle,就表示我们的程序能够使用那些Python程序员所编写的代码。图2-1中的小的黑色箭头表示海龟,它在屏幕上移动的时候会使用钢笔绘图。

程序的第3行是t = turtle.Pen(),它告诉计算机,我们将使用字母t表示海龟的钢笔。这使得我们只需要录入t.forward(),而不是turtle.Pen().forward(),就可以让海龟在屏幕上移动的时候用海龟的钢笔进行绘制。字母t是告诉海龟做什么的一种快捷方式。

第4行最为复杂。在这里,我们创建了一个循环(loop),它重复一组指令很多次(一次又一次地循环这些代码行)。这个特定的循环设置了一个范围(range,或列表),其中拥有从0~99的100个数字(计算机几乎总是从0开始计数,而不是像我们通常那样从1开始)。在该循环中,字母x遍历了范围中的每一个数字。因此,x从0开始,然后变为1,然后是2,依次类推,直到99,一共100个步骤。

x叫作变量(variable)[2](在第1章中的YourName.py程序中,name就是变量)。变量存储了在程序进行的过程中可以修改(变化)的一个值。我们在所编写的几乎每一个程序中,都要使用变量,因此,早点认识变量为好。

接下来的两行代码缩进了,或者说,在左边留出了空格。这意味着,它们位于该循环之中(in the loop)并且和上面的那一行代码一起,每次x从0~99的范围中获取一个新的数字的时候,这些代码行都会重复,直到达到100次。

发生了什么

让我们看看Python初次读取这一组指令的时候发生了什么。命令t.forward(x)让海龟的钢笔在屏幕上向前移动x个点。因为x是0,钢笔根本不会移动。最后一行代码t.left(90)让海龟向左转90°,或者说转四分之一个圈。

由于这个for循环,程序继续运行并且回到了循环的开始位置。计算机加1后将x移动到范围中的下一个值,因为1仍然位于从0~99的范围中,循环继续。现在x是1,因此,钢笔向前移动1个点。然后,钢笔向左移动90个点,因为代码是t.left(90)。这样一次一次地继续执行,当x到达99,即循环的最后一次迭代,钢笔围绕着正方形螺旋线的外围画了一条长长的线条。

下面我们随着x从0增加到100,将循环的每一步可视化地表示出来

for x in range(100):

t.forward(x)

t.left(90)

循环0到4:绘制了前4条线(在x = 4之后)。

循环5到8:绘制了另外4条线;正方形出现了。

循环9到12:正方形螺旋线变为了12条线(3个正方形)。

计算机屏幕上的点或像素可能太小了,以至于我们无法很好地看到它们。但是,随着x变得越来越接近100,海龟绘制的线条包含了越来越多的像素。换句话说,当x变得越来越大,t.forward(x)绘制的线条越来越长。屏幕上的海龟箭头,绘制一会儿,然后向左转,再绘制一会儿,再向左转,这样一次又一次地绘制,每次线条都变得越来越长。

最后,我们有了一个炫目的正方形形状。连续4次向左转90°,就可以得到一个正方形,就像是围绕一栋建筑连续4次左转的话,将会带着我们绕建筑转一圈并且回到起点一样。

在这个示例中,我们之所以得到一个螺旋线,是因为每次左转的时候,都走得更远一点。绘制的第一个线条只是1步长(x = 1的时候),然后是2(循环的下一次迭代),然后是3,然后是4,以此类推,直到达到100步长,这时候,线条的长度为99像素。再一次强调下,屏幕上的像素可能太小了,以至于我们无法很容易地看到单个的点,但是,它们是存在的,而且我们会看到随着程序包含更多的像素,线条会变得越来越长。

通过完成所有的90°角的旋转,我们得到了完美的正方形。

以上就是本次给大家分享的关于少儿学python的全部知识点内容总结,大家还可以在下方相关文章里找到少儿编程顺德

一对一教儿童编程序

郯城少儿编程

儿童编程机器人

成都市酷思少儿编程

等少儿学python相关文章进一步学习,感谢大家的阅读和支持。

展开 +

收起 -

海龟编程计算机,第一个海龟程序相关推荐

  1. 怎样在hdfs上创建多级目录文件夹_【HDFS API编程】第一个应用程序的开发-创建文件夹...

    /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 HDFS API的操作了 * ...

  2. python海龟画图代码大全_【程序源代码】python 海龟画图

    关键字: 正文 | 内容 今天这篇文章主要是介绍:python 海龟画图画一个正方形图案 01 - Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴 ...

  3. python海龟作图好看图案_编程入门 06:Python 海龟绘图

    编程入门 06:Python 海龟绘图 现在让我们开始尝试图形用户界面 (GUI) 程序的编写 Python 标准库中有个 turtle 模块, 可以生成标准的应用程序窗口进行图形绘制 turtle ...

  4. 祖思机——第一台二进制可编程计算机

    巴贝奇领先全人类一个世纪提出了可编程机械计算机的设想,但最终没能将其转换为现实--分析机的建造甚至迄今都没有人能完成.历史翘首期盼了百年,却在纳粹德国见证了第一台可编程计算机的诞生. 它的发明者--康 ...

  5. 海龟编程 python绘图工具turtle库的用法 turtle库使用方法大全,画笔设置 画布设置 绘图设置,画笔粗细,画笔颜色, 画笔速度。Python二级必须会的命令(已获取证书)

    目录 海龟编程 python绘图工具turtle库的用法 画布: 画笔 画笔运动命令: 画笔的控制命令: 全局控制命令: 简单turtle绘图示例: 圆中方: 三色同心圆: 四个圆中方: 螺旋正方: ...

  6. java编程的第一天之了解计算机

    编程的第一天了解计算机 1计算机基础 1.1计算机 1.2计算机的组成 1.3计算机语言 1.4计算机软件开发 1.5人机交互方式 1.6键盘快捷键的介绍 1.7常见的DOS命令 2JAVA语言概述 ...

  7. python语言入门编程猫-编程猫推出海龟编程器,打造Python教育产品矩阵

    原标题:编程猫推出海龟编程器,打造Python教育产品矩阵 芥末堆8月18日讯 今日,编程猫推出Python教育产品矩阵,其中包括海龟编程器.游戏化教学产品"代码竞技场".教材.师 ...

  8. 程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中

    程序员编程艺术第一~十章集锦与总结--面试.算法.编程 作者:July.编程艺术室. 出处:http://blog.csdn.net/v_JULY_v . 围绕"面试"." ...

  9. 程序员编程艺术第一~三十八章集锦与总结,及Github地址、PDF下载

    程序员编程艺术第1~38章集锦与总结,及Github.PDF下载 前言 熟悉本blog的朋友大都知道,在2010年刚开始写本博客之际,我整理过一个微软面试100题,后来我为这100题开始发帖讨论,写答 ...

  10. 程序员编程艺术第一 三十八章集锦与总结,及Github地址 PDF下载

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 程序员编 ...

最新文章

  1. Day 1 用户交互
  2. 计算机程序无法运行,win7电脑程序打不开解决方法
  3. [导入]源代码版本控制(二)
  4. 四面体的表面积_边长为正四面体的表面积是()、;、;、;、。
  5. 卷积编码verilog实现
  6. 阿里新供应链架构解读
  7. Frank-Cucumber - Core Frank Steps
  8. HEVC解码器的TDecCu部分
  9. oracle常用分析函数与聚合函数的用法
  10. JS下载图片保存在本地
  11. 计算机控制系统fcs是,在计算机控制系统中,FCS是指()。A.集散控制系统B.数字仪表控制系统C.现场总线控制系统...
  12. 苹果6s能安装通讯测试软件么,iOS 13在iPhone 6S和SE上运行情况如何
  13. uni-app - H5 公众号网页分享到微信朋友圈 / 转发分享给朋友好友 / 分享到手机 QQ / 分享到 QQ 空间,给微信分享卡片设置图标、标题、描述文字等(JS-SDK 通用解决方案放心用)
  14. 全链路压测:构建三大模型
  15. 2020三月实习后台春招经历
  16. 如何把WORD文档的页眉页脚中的那一条横线去掉
  17. 名企实习学历受限吗?IT名企实习看实力还是学历
  18. nas4free 安装mysql_Docker安装MySQL
  19. VS C++控制台项目引入FMOD第三方库
  20. 办公OA系统的设计与实现 软件工程 Struts、Spring和Hibernate(SSH)

热门文章

  1. java读取目录下所有txt_java读取同目录下的txt文件
  2. 如何系统学习知识图谱-胖子哥的实践经验分享
  3. ps4如何设置虚拟服务器,PS5官方使用指南 账号设置/PS4传输数据/调整主机设定
  4. 标准差SD、相对标准偏差RSD学习和python实现
  5. 计算机学报在线阅读,ei收录的计算机类核心源:计算机研究与发展计算机学报软件.doc...
  6. 光纤跳线选用指南及光模块连接方案
  7. 字体:等宽字体与比例字体 - Monospaced font Proportional font
  8. 获取斗鱼直播间的弹幕信息
  9. Redis之SDS数据结构
  10. FTP在资源管理器里打不开