python画图程序-编程入门06:Python海龟绘图
现在让我们开始尝试“图形用户界面”(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海龟绘图相关推荐
- python海龟作图好看图案_编程入门 06:Python 海龟绘图
编程入门 06:Python 海龟绘图 现在让我们开始尝试图形用户界面 (GUI) 程序的编写 Python 标准库中有个 turtle 模块, 可以生成标准的应用程序窗口进行图形绘制 turtle ...
- python画图程序代码_少儿python编程(7)海龟画图(拓展1)
我们继续用Python的海龟库来画图吧! 上图是画一朵花的程序,重点是6-12行,使用了函数来定义drawleaf:每一掰叶子由两条弧线组成,每一条弧线重复画15次,每次前进5步,右转6度. 看图形化 ...
- python可视化窗口编程-Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...
- r matlab spss,特别放送 | 零基础编程入门:Python、Matlab、R、SPSS资料大放送
原标题:特别放送 | 零基础编程入门:Python.Matlab.R.SPSS资料大放送 我们一直相信: 一切不能实实在在帮助到同学的资料 都是耍流氓 小助手的目标是: 做一次又一次真正有价值.愉悦感 ...
- 机器人 python 极客入门_机器人Python极客编程入门与实战
Python是一种面向对象.解释型的计算机程序设计语言,其简洁实用.高效,拥有众多模块库,可移植,跨平台,简单易学,易于上手.随着计算机深入发展,Python逐渐成为最适合青少年做创意设计的语言,也同 ...
- 机器人python极客pdf_机器人Python极客编程入门与实战
编辑推荐 有了先进的软件.硬件开发平台,剩下的只是创意.中国人,特别是中国的年轻人,是全球富有创业.创新精神的一群人,这样的一个群体难道还会缺乏创意吗? "青少年学编程系列丛书"只 ...
- Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...
- 青少年python编程入门书-青少年Python编程入门——图解Python
商品详情 书名:青少年Python编程入门--图解Python 定价:69.8 ISBN:9787121395543 作者:傅骞 版次:第1版 出版时间:2020-09 内容提要: 本书介绍pytho ...
- python编程界面-Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...
最新文章
- path,classpath
- 基于OpenCV Haar实战级联分类器的使用
- 线段树分裂与合并的模板以及空间大小的计算
- 速腾雷达客户端软件使用说明
- golang 排序list_Go语言使用sort包对任意类型元素的集合进行排序的方法
- STM 32如何实现程序自加密
- 转: Fedora 17 安装flash插件
- PHP基础知识(一)
- 学计算机与学英语作文,初二英语作文(关于计算机与学习)
- 把一个结构体当做属性后碰到的问题
- mysql统计功能和数据库information_schema/performance_schema
- QUnit系列 -- 5.QUnit源码分析之大致结构
- 【文献阅读】ResNet-Deep Residual Learning for Image Recognition--CVPR--2016
- 通达信与飞狐不同函数的替代
- 峰度的意义_李德荃关于偏度与峰度的讲解
- 计算机组成原理 静态随机存储器实验,计算机组成原理静态随机存储器实验
- R语言常见报错及解决方法
- Java实现json报文的比对(不考虑内部顺序 + 可设置跳过部分字段比对)
- 阿里云云计算工程师 ACP 认证(Alibaba Cloud Certified Professional -Cloud Computing)考试大纲
- 不安全!!!都2020年了,你的网站还没上HTPPS说得过去吗?