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

In [1]: import turtle as tt

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度,如此重复五次:

import turtle as tt

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

cnt = 0

while cnt < 5:

tt.forward(200)

tt.right(144)

cnt += 1

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

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

import turtle as tt

from random import randint

tt.TurtleScreen._RUNNING = True

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

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

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

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

cnt = 0

while cnt < 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模块的交互功能,把上次编写的命令行式猜数游戏改造成图形界面的——请把程序文件命名为turtle_guessnum.pyw,这样当你在操作系统中直接双击时就不会再打开黑色的命令行窗口。获取用户输入可以使用对话框,反馈信息则可以直接显示在窗口绘图区域中:

from random import randint

import turtle as tt

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 = ""

while guess != target:

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

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

if guess == target:

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

elif not guess: # 用户没有输入数字则中断循环

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

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

break

elif guess > target:

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

else:

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

tt.clear()

tt.write(answer, font=myfont)

tt.done()

06_turtle_guess.png

——编程原来是这样……

编程小提示:模块的运行

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

python -m turtledemo

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

python -m turtle

python海龟绘图代码大全-编程入门06:Python海龟绘图相关推荐

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

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

  2. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  3. python创意爱情代码大全-王牌花色-题解(Python代码)

    count = int(input()) def judge(card1, card2): get_number1 = card1[0] get_number2 = card2[0] # J, Q, ...

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

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

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

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

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

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

  7. 视频教程-跟着王进老师学开发之Python篇第一季:基础入门篇-Python

    跟着王进老师学开发之Python篇第一季:基础入门篇 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  8. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

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

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

  10. python基础代码大全-【01】Python基础入门 (全)

    一.字符串 1. 字符串切片 切片: name="abcdef" name[2:5]="cde" 跳取: name="abcdef" nam ...

最新文章

  1. tomcat端口号被占用怎么解决_电脑C盘空间不够用怎么办?Win7解决C盘占用空间大的3个方法!...
  2. 【100题】第十六题(层序打印树的节点)
  3. 浙江大学首次跻身全球50强,上海交大论文发表量全球第四 | QS最新世界大学排名...
  4. 网站优化中搜索引擎为何重视原创内容呢?
  5. python内置模块re_常用内置模块(11):正则表达式、re模块
  6. 16位汇编 写入显存B800:0000 输出字符串
  7. Tensor数据相关的运算、函数讲解及与numpy区别
  8. 导师什么时候会放弃学生?
  9. 字符串char与string转换
  10. fedora linux五笔输入法,ArchLinux 安装五笔输入法
  11. Fall 2020 Berkeley cs61a Projects Ants答案
  12. android webview播放视频黑屏
  13. 关于计算机团队名字大全集,好听的团队名字大全
  14. js中的this指向问题
  15. 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台
  16. 爱奇艺自研DRM技术斩获国家级专利奖 持续为内容创作者提供更高等级版权保护...
  17. RUST语言的编程范式
  18. 天阳科技-宁波银行面试题【杭州多测师】【杭州多测师_王sir】
  19. phpExcel单元格内换行
  20. 如何绕开对通用VMware虚拟机检测

热门文章

  1. MacOS Monterey 12.6(21G115) OC 0.8.4 / Cl 5149 / PE 三分区原版黑苹果镜像
  2. 利用Python的PyPDF2库,根据论文标题批量修改pdf的文件名
  3. 一台计算机安装了fortran语言,win10系统fortran怎么安装_win10系统fortran安装教程
  4. android 开机动画制作
  5. 杭电计算机组成原理实践课 实验2 一位全加器构成的四位全加器
  6. qq拼音输入法下载|qq拼音输入法纯净版下载
  7. 微信小程序开发学习资料
  8. 负载均衡与服务器架构
  9. 搭建webservice服务报错求解
  10. ExtJs教程----如何改变各个区域的背景色