编程入门 06:Python 海龟绘图

现在让我们开始尝试图形用户界面 (GUI) 程序的编写 Python 标准库中有个 turtle 模块, 可以生成标准的应用程序窗口进行图形绘制 turtle 的绘图方式非常简单直观想象有一只尾巴上蘸着颜料的小海龟在电脑屏幕上爬行, 随着它的移动就能画出线条来, turtle 程序窗口的绘图区域使用直角坐标系, 海龟的初始位置在窗口绘图区正中的 (0,0) 点, 头朝 x 轴的正方向你可以先在交互模式中引入模块并练习其中的函数:In[1]:importturtleastt

In[2]:tt.setup()# 设置画布, 这将立即显示绘图窗口

In[3]:tt.forward(100)# 前进 100 像素, 这将画出一条横向线段

In[4]:tt.right(90)# 右转 90 度, 这将改变海龟的朝向

In[5]:tt.forward(100)# 这将画出一条纵向线段

In[6]:tt.goto(0,0)# 前往原点, 这将完成一个等腰直角三角形

In[7]:tt.bye()# 关闭绘图窗口

利用 tutle 模块能够更生动地学习流程控制概念, 以下程序可以画出一个五角星画一条线段并右转 144 度, 如此重复五次:importturtleastt

tt.TurtleScreen._RUNNING=True# 启动绘图, 在 IDE 中运行加这句可避免报错

cnt=0

whilecnt<5:

tt.forward(200)

tt.right(144)

cnt+=1

tt.done()# 结束绘图, 这将不会关闭窗口

以下程序连续画了 500 条线段, 每一条线段的颜色都随机, 每一条线段都比前一条长 1 个像素, 每画一条线段之后都向右转 91 度于是我们得到了一个繁复的彩色螺旋图案:importturtleastt

fromrandomimportrandint

tt.TurtleScreen._RUNNING=True

tt.speed(0)# 绘图速度为最快

tt.bgcolor("black")# 背景色为黑色

cnt=0

tt.setpos(-25,25)# 改变初始位置, 这可以让图案居中

tt.colormode(255)# 颜色模式为真彩色

whilecnt<500:

r=randint(0,255)

g=randint(0,255)

b=randint(0,255)

tt.pencolor(r,g,b)# 画笔颜色每次随机

tt.forward(50+cnt)

tt.right(91)

cnt+=1

tt.done()

06_turtle.png

接下来让我们灵活运用 turtle 模块的交互功能, 把上次编写的命令行式猜数游戏改造成图形界面的请把程序文件命名为 guessnum.pyw, 这样当你在操作系统中直接双击时就不会再打开黑色的命令行窗口获取用户输入可以使用对话框, 反馈信息则可以直接显示在窗口绘图区域中:fromrandomimportrandint

importturtleastt

tt.TurtleScreen._RUNNING=True

tt.setup(width=800,height=450,startx=None,starty=None)# 设置自定义的窗口大小

tt.hideturtle()# 隐藏画笔图标

tt.color("blue")# 画笔颜色为蓝色

tt.penup()# 抬起画笔, 移动时不画线

tt.setpos(-300,0)# 设置初始位置

myfont=("黑体",16,"normal")# 定义字体

target=randint(1,100)

tt.write("我想了一个 1 到 100 之间的整数, 请你猜猜看吧:",font=myfont)# 输出文本

guess=0

answer=""

whileguess!=target:

# 使用对话框获取用户输入

guess=tt.simpledialog.askinteger("猜数游戏","请输入一个整数:")

ifguess==target:

answer="你猜对了! 游戏结束"

elifnotguess:# 用户没有输入数字则中断循环

tt.clear()# 清空画布以便输出新文本

tt.write("你放弃了, 游戏结束",font=myfont)

break

elifguess>target:

answer="你猜大了, 再猜一次:"

else:

answer="你猜小了, 再猜一次:"

tt.clear()

tt.write(answer,font=myfont)

tt.done()

06_turtle_guess.png

海龟绘图很有趣, 你可以查看官方在线文档以了解 turtle 模块的更多细节 https://docs.python.org/3.6/library/turtle.html

编程原来是这样

编程小提示: 模块的运行

Python 标准库中还有一个 turtledemo 模块, 这是 turtle 绘图功能演示程序, 输入以下系统命令即可运行 turtledemo 模块:

python -m turtledemo

只要模块中定义了可运行对象(实现功能或用于测试), 模块就是可运行的实际上, 你也可以输入以下系统命令来运行 turtle 模块:

python -m turtle

来源: http://www.jianshu.com/p/5339bf4d5e97

python海龟作图好看图案_编程入门 06:Python 海龟绘图相关推荐

  1. python海龟作图好看图案_海龟作图---用Python绘图

    一.关于Turtle "turtle是一个简单的绘图工具.它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令" 操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一 ...

  2. python是什么语言汇编_编程语言及python介绍

    编程语言及python介绍 1.编程语言分类 机器语言 优点:执行效率高 缺点:开发效率极低,跨平台性差 汇编语言 优点:较机器语言执行效率稍低 缺点:较机器语言开发效率稍高,仍然很低,跨平台性差 高 ...

  3. python小海龟画房子编程_编程入门06:Python海龟绘图

    现在让我们开始尝试"图形用户界面"(GUI)程序的编写--Python标准库中有个turtle模块,可以生成标准的应用程序窗口进行图形绘制.turtle的绘图方式非常简单直观--想 ...

  4. python海龟作图好看图案_python海龟绘图,其实python也很强大,这些技能你知道吗?...

    Turtle库 简介 什么是Turtle 首先,turtle库是一个点线面的简单图像库,能够完成一些比较简单的几何图像可视化.它就像一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始 ...

  5. python海龟作图好看图案_Python中的高级turtle(海龟)作图

    在Python里,海龟不仅可以画简单的黑线,还可以用它画更复杂的几何图形,用不同的颜色,甚至还可以给形状填色. 一.从基本的正方形开始 引入turtle模块并创建Pen对象: >>> ...

  6. python海龟作图不用循环_我用Python告诉老大爷“啥是佩奇”

    " 今天,被<啥是佩奇>这支广告片刷屏了.佩奇明明是个喜剧角色,却看哭了所有人. 快过年了,在农村爷爷给城里的小孙子打电话,小孙子说想要"佩奇",为了满足小孙 ...

  7. 青少年python编程入门书籍_新书推荐 | 《青少年Python编程入门——图解Python》

    原标题:新书推荐 | <青少年Python编程入门--图解Python> 随着信息时代的到来,在编程教育中进行计算思维培养正在成为信息技术教育关注的重点.<普通高中信息技术课程标准( ...

  8. r matlab spss,特别放送 | 零基础编程入门:Python、Matlab、R、SPSS资料大放送

    原标题:特别放送 | 零基础编程入门:Python.Matlab.R.SPSS资料大放送 我们一直相信: 一切不能实实在在帮助到同学的资料 都是耍流氓 小助手的目标是: 做一次又一次真正有价值.愉悦感 ...

  9. 青少年python编程入门书-青少年Python编程入门——图解Python

    商品详情 书名:青少年Python编程入门--图解Python 定价:69.8 ISBN:9787121395543 作者:傅骞 版次:第1版 出版时间:2020-09 内容提要: 本书介绍pytho ...

最新文章

  1. Detail-Preserving Pooling in Deep Networks
  2. [04] 前端构建工具区别
  3. VS2013的项目转到VS2010需要修改的
  4. Bamboolib -- 十分钟教会业务小姐姐做数据分析
  5. java时间api_什么是java时间API?
  6. HDU1394(权值线段树)
  7. oracle plsql异常,【Oracle篇】异常处理和PLSQL
  8. 精通Android自定义View(十七)自定义圆形鸟巢加载转圈效果
  9. echarts柱状图x轴文字纵向显示
  10. 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
  11. mysql++编程规范_建议收藏 - 专业的MySQL开发规范
  12. 使用Promise链式调用解决多个异步回调的问题
  13. 第四天:使用 session cookie redis完善登录验证及登录路由
  14. matlab单机无限大系统_MATLAB运用simulink建立简单的单机-无穷大系统仿真
  15. 在tomcat下配置jdbc连接池
  16. ZYNQ ucos-ii中使用lwip及usb
  17. 动态改变图片的useMap属性导致IE假死或崩溃!
  18. Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
  19. sphinx PHP win,Sphinx 在 windows 下安装使用
  20. Redis中set、setnx、setex区别

热门文章

  1. 详解C盘Windows文件夹里重要文件作用
  2. 安卓模拟器登录微信自动化测试最佳实践
  3. 查看Eclipse32位还是64位,查看JDK是32位还是64位
  4. 黃綜翰:我的風羽路-新團隊新夢想
  5. 企业微信海外版此前将名称改为 “Wecom”,腾讯打算将其设置为微信的潜在替代方案
  6. 计算机应用对字数的要求,信息系统项目管理师考试论文字数要求是多少,没达标会扣多少分...
  7. 前端python开发_【2020Python修炼记】前端开发之 前端工具和HTML
  8. Revit二次开发——revit怎么给桥梁加钢筋
  9. 拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴
  10. 万字长文带你玩转2020全国大学生计算机技能应用大赛—C语言模考整理解析