前面的教程中,我们已经可以让小海龟绘制出各种图形了。但是,所有绘图的代码都是预先编好的,程序一旦运行起来,运行结果(绘制的图形)就是固定不变的。这一节中,咪博士将教大家如何让海龟响应用户的输入。

1 importturtle2

3

4 defmove():5 direction = turtle.textinput('Input direction', 'Go left or right?')6

7 if direction == 'left':8 turtle.left(60)9 turtle.forward(100)10

11 if direction == 'right':12 turtle.right(60)13 turtle.forward(100)14

15

16 move()17

18

19 turtle.exitonclick()

程序运行起来之后,会先弹出一个输入框,询问你海龟的运动方向。你可以输入 left 或者 right。

当你按下 ok 按钮之后,海龟就会根据你的输入(left 或 right),相应地向左或向右运动。

这个例子中,程序的运行结果不完全取决于事先编写的代码,它还和你的输入有关。

第 5 行 direction=turtle.textinput('Input direction','Go left or right?') 弹出一个输入框。输入框(窗口)的标题是 Input direction,输入框的提示文字为 Go left or right?。

当用户完成输入点击 ok 按钮时,变量 direction 将获得用户输入的值。

当用户点击 cancel 按钮时,变量 direction 的值为 None (None 为Python 中的关键字,表示什么也没有的意思)。

第 7, 8, 9 行称为条件语句。每个 if 语句(第 7 行)表示一个条件,它只有 2 种情况:要么成立(为真,值为 True),要么不成立(为假,值为 False)。

第 7 行 ifdirection=='left': 对应的条件是判断变量 direction 与字符串 ‘left’ 是否相等。如果相等则执行第 8, 9 行的代码,否则就不执行第 8, 9 行的代码。

翻译成大白话就像下面这样

1 如果变量 direction 等于 left,则执行下面的语句2 turtle.left(60)3 turtle.forward(100)

所以,当用户输入 left,并点击 ok 按钮时,direction 接收到用户的输入 left,它的值等于 left,海龟就先向左转 60 度(执行第 8 行代码),再前进 100 个单位(执行第 9 行代码)。

要注意的是 Python 中比较 2 个东西是否相等,要用 == (即 2 个连续的等号),因为单独的 = (等号)在 Python 中表达的是将某个值赋值给某个变量的意思,因此,比较是否相等就得用另外的符号(即 ==)了。

另外,还要注意缩进,第 8, 9 行的代码要比 if 语句所在的行(第 7 行),向右缩进一些。这样 Python 才知道,当 if 语句为真时(即条件成立时),需要执行哪些代码。和咪博士在前面的教程中谈到的一样,我们一般用连续的 4 个空格符号来表示一级的缩进。

第 11, 12, 13 行也是条件语句,它们和第 7, 8, 9 行代码类似,只不过条件成立的条件改成了变量 direction 的值等于 right。

if 语句还有其他一些语法。下面,咪博士给大家展示的是 if … else 的语法。

1 importturtle2

3

4 defmove():5 direction = turtle.textinput('Input direction', 'Go left or right?')6

7 if direction == 'left':8 turtle.left(60)9 turtle.forward(100)10 else:11 turtle.right(60)12 turtle.forward(100)13

14

15 move()16

17

18 turtle.exitonclick()

将 7-12 行的代码翻译成大白话就像下面这样,

1 如果变量 direction 等于 left,则执行下面的语句2 turtle.left(60)3 turtle.forward(100)4 否则,执行下面的语句5 turtle.right(60)6 turtle.forward(100)

注意体会前后 2 个版本细微的差别。考虑用户输入一个既不是 left 也不是 right 的字符串(或者直接点击 cancel 按钮)。

前一个版本中,海龟不会发生运动。因为此时, ifdirection=='left': 不成立, ifdirection=='right': 也不成立,所有的绘图代码都没有机会执行。

后一个版本中,海龟会往右下方向运动。因为,后一个版本只检查 ifdirection=='left': 是否成立。当该条件不成立时,不论变量 direction 的值是多少,它都会执行 else 对应的语句。

要实现和第 1  个版本一样的效果,我们可以用 if … elif 这样的语法。

1 importturtle2

3

4 defmove():5 direction = turtle.textinput('Input direction', 'Go left or right?')6

7 if direction == 'left':8 turtle.left(60)9 turtle.forward(100)10 elif direction == 'right':11 turtle.right(60)12 turtle.forward(100)13

14

15 move()16

17

18 turtle.exitonclick()

这个版本中,程序会依次,

先检查 ifdirection=='left': (第 7 行)的条件,如果成立则执行相应的代码(第 8, 9 行),并忽略剩余的其他条件。如果不成立,则顺次检查下一个条件  ifdirection=='right': (第 10 行)。

类似地,如果该条件成立,则执行相应的代码(第 11, 12 行),并忽略剩余的其他条件,否则再顺次检查下一个条件。

这样一直重复下去,直至没有可检查的条件为止。

虽然,第 3 个版本和第 1 个版本,最终呈现的效果是一模一样的,但它们的内部的执行过程,仍然有细微的差别。

第 1 个版本中,程序一定会检查条件 ifdirection=='right': 是否成立,无论前一个条件  ifdirection=='left': 是否成立。

最后一个版本中,程序只有在前一个条件 ifdirection=='left': 不成立的时候,才会检查条件  ifdirection=='right': 是否成立。

因此,虽然最终的效果是一样的,但从执行效率上来看,最后一个版本要略微高效一些。

python画图零基础入门教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件...相关推荐

  1. python海龟教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环...

    条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...

  2. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数

    什么样的程序员才是优秀的程序员?咪博士认为"慵懒"的程序员才是真正优秀的程序员.听起来不合逻辑?真正优秀的程序员知道如何高效地工作,而不是用不止境的加班来完成工作任务.函数便是程序 ...

  3. 少博士趣学python_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友...

    Python (Windows 下) 自带了一个非常有趣的 海龟绘图程序 (turtle),它是本系列课程的主角. 在 PyCharm 中,新建一个项目,然后在代码编辑器中输入 import turt ...

  4. STL教程:C++ STL快速入门

    目录 1.STL引言 2.STL是什么(STL简介) 3.STL历史 4.STL组件 5.STL基本结构 6.STL 使用方法 7.STL目录 网址:STL教程:C++ STL快速入门(非常详细) 第 ...

  5. PR软件入门教程 Adobe Premiere Pro 快速入门指南

    原文(包含图片)链接:https://www.prjianji.com/1.html 了解如何开始使用面向电影制作人.电视节目制作人.新闻记者.学生和视频制作人员的非线性编辑软件 Premiere P ...

  6. python海龟绘图小猪佩奇_海龟绘图(Turtle Graphics)

    python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle 先说明一下turtl ...

  7. python代码大全和用法用量_python零基础入门命令方式汇总大全,快速恶补你的Python基础...

    原标题:python零基础入门命令方式汇总大全,快速恶补你的Python基础 无意中浏览到这篇来自大牛的分享,总结的很全面,我重新排版下放在这里,希望能帮助到大家.在此十分感谢原作者! 在开始之前还是 ...

  8. python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...

    初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...

  9. python统计数据分析基础教程_Python数据分析基础教程:NumPy学习指南(第2版)

    第1章 NumPy快速入门 让我们开始吧.首先,我们将介绍如何在不同的操作系统中安装NumPy和相关软件,并给出使用NumPy的简单示例代码.然后,我们将简单介绍IPython(一种交互式shell工 ...

最新文章

  1. yii2框架原生的结合框架使用的图片上传
  2. mybatis做like模糊查询
  3. java中的多线程(转自http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html)
  4. ionic - error
  5. 【简洁易懂】为什么判断素数时只需要循环到该数的平方根
  6. Portal-Basic Java Web应用开发框架V3.0正式发布(源码、实例及文档)
  7. HDU 2588 GCD amp;amp; GCD问题总结
  8. 力扣--220存在重复I-III
  9. Fedora Linux基本配置
  10. 《模拟电子技术》清华大学华成英教授主讲
  11. 量化交易接口UFX是什么?
  12. activity 工作流引擎-流程表介绍
  13. 查询ISBN号验证ISBN号调用api接口查询书籍信息
  14. “出神”才能提高创造力——史蒂芬 · 科特勒 杰米 · 威尔
  15. WordCloud库的安装教程
  16. 白领十大职业病及对策
  17. excel函数应用:如何写出IF函数多级嵌套公式
  18. 怎么制作手机网站?如何建一个wap手机网站?所谓手机网站指手机能访问的网站,现在手机浏览器对html...
  19. word另存为的快捷键
  20. OpenVINO2022.1+open_model_zoo例程的编译与使用

热门文章

  1. 深圳农村商业银行转账显示服务器无响应,深圳农村商业银行
  2. Traveling on the Axis (The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online)
  3. php-箭头r含义,php中-箭头的用法和意义
  4. JQuery:全选按钮的实现
  5. php array_only,php可以定义数组的常量吗
  6. win32api.sendmessage模拟鼠标点击_安卓模拟器一键宏设置教程
  7. xiaocms php,XiaoCms PHP企业网站模板, ,后台可备份 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  8. databasemetadata获取表注释_宏基因组测序中短序列的注释
  9. linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量
  10. java http请求 乱码_怎么解决java中的http请求乱码