Python图形界面的设计,Turtle库的使用

2023-11-08

一、学习目标

1.Turtle库的简介
2.调用Turtle库
3.绘画起点和方向
4.画布

二、知识点

1.Turtle库的简介
Turtle库是Python语言中一个很流行的绘图图像函数库,中文意思是甲鱼、海龟、,所以也称为海龟库,Turtle非常容易操作,可以用它画出很多奇妙的图案。
2.调用Turtle库
在Python3以上版本,系统将Turtle库内置在Python库中,因此用户不需要额外安装就可以直接导入使用,具体命令是import turtle。
3.绘画起点和方向
一个Turtle实际上是一个对象,在导入Tuertle模块时,就等于创建了该对象,然后就可以调用Turtle对象的各种方法完成不同的操作。
当创建一个Turtle对象时,它的位置默认被设定在窗口的中心,坐标(0,0)处,用笔来绘制图形,它的方向默认被设置为向右(东)。
4.画布
画布(canvas)就是用于绘图的区域,可以根据需要设置它的大小和初始位置。
1)设置画布大小
设置画布大小可以用以下两种方法实现

turtle.screensize(),基本格式如下
turtle.screensize(canvwidth = None,cnvheight = None,bg = None)

其中参数canvwidth、cnvheight分别表示画布的宽、高,以像素为单位;参数表示画布的背景颜色,对应颜色用英文表示就行了,三个参数可以为空值(None)。

三、代码展示

1.在交互式环境下,利用turtle.screensize( )设置画图大小
在这里插入图片描述
2.在交互式环境下,利用turtle.setup( )设置画布
在这里插入图片描述
3.利用turtle.pen( )查看画笔具有的属性
在这里插入图片描述
4.利用Tuertle模块画一边长为100像素的正方形
在这里插入图片描述
5.利用Tuertle模块画圆
在这里插入图片描述

6.改变上一个的画笔起始位置,画圆在这里插入图片描述
7.利用turtle.circle( )画多边形
在这里插入图片描述
下面以一个任务为例子
源代码示列

import turtle as t
def sanjiaoxing():
    t.penup()
    t.goto(0,100)
    t.pendown()
    for i in range(3):
        t.seth(i*120)
        t.fd(100)
def yuan():
    t.penup()
    t.goto(50,100)
    t.pendown()
    t.color('red')
    t.circle(60)
def zhengfangxing():
    t.penup()
    t.goto(-100,100)
    t.pendown()
    t.color('blue')
    t.begin_fill()
    t.fillcolor('green')
    for i in range(4):
        t.forward(80)
        t.left(90)
def juxing():
    t.penup()
    t.goto(-200,250)
    t.pendown()
    t.color('blue')
    t.begin_fill()
    t.fillcolor('blue')
    for i in range(1,5):
        if i % 2 == 1:
            n = 120
        elif i % 2 == 0:
            n = 80
        t.forward(n)
        t.left(90)
    t.end_fill()
    t.penup()
def wujiaoxing():
    t.clear()
    t.penup()
    t.setx(-100)
    t.sety(100)
    t.write("五角星",align='left',font=('Arial',20,'normal'))

    t.penup()
    t.goto(-80,0)
    t.pendown()
    t.pensize(2)
    t.pencolor('red')
    t.goto(-100,0)
    t.color("red","green")
    for x in range(1,9):
        t.forward(100)
        t.left(225)
    t.end_fill()
def xiangrikui():
    t.penup()
    t.setx(330)
    t.sety(200)
    t.delay(20)
    t.pendown()
    t.pencolor("black")
    t.write("向日葵",align='right',font=('Arial',20,'normal'))

    t.penup()
    t.goto(200,-50)
    t.pendown()
    t.pencolor("red")
    for x in range(1,20):
        t.forward(200)
        t.left(95)
def aoyunwuhuan():
    t.clear()
    t.penup()
    t.setx(-160)
    t.sety(220)
    t.pencolor("red")
    t.write("中国加油,武汉加油",align='center',font=('Arial',30,'normal'))
    t.penup()
    x = -200
    y = 50
    r = 60

    t.goto(x,y)
    t.pendown()
    t.pensize(10)
    t.pencolor('blue')
    t.circle(r)
    t.penup()

    t.goto(x + 2.5 * r,y)
    t.pendown()
    t.pensize(10)
    t.pencolor('black')
    t.circle(r)
    t.penup()

    t.goto(x + 2.5 * r * 2,y)
    t.pendown()
    t.pensize(10)
    t.pencolor('red')
    t.circle(r)
    t.penup()

    t.goto(x + (2.5 * r) * 0.5,y - r)
    t.pendown()
    t.pensize(10)
    t.pencolor('yellow')
    t.circle(r)
    t.penup()

    t.goto(x + (2.5 * r) * 0.5 +2.5 * r,y - r)
    t.pendown()
    t.pensize(10)
    t.pencolor('green')
    t.circle(r)
    t.penup()

i = 1
while i <= 10:
    a = input("请输入需要绘制的图形:1(三角形)/2(正方形)/3(矩形)/4(圆)/5(五角星)/6(向日葵)/7(奥运五环)")
    if a=='1':
        sanjiaoxing()
    elif a=='2':
        zhengfangxing()
    elif a=='3':
        juxing()
    elif a=='4':
        yuan()
    elif a=='5':
        wujiaoxing()
    elif a=='6':
        xiangrikui()
    elif a=='7':
        aoyunwuhuan()
    i = i + 1

运行结果为:
交互式环境下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 今天主要学习了python的图形界面设计,使用了turtle画图,在交互式环境下现将一个画板设置出来,然后再设置边宽长度,Turtle非常容易操作,可以用它画出很多图案,它可以直接导入使用,具体命令是import turtle,在运行中会运用到很多的运动命令、画笔控制命令和全局控制命令。利用turtle模块绘图时,系统会自行弹出一个窗体用来装载绘制的图片,绘图窗体处的位置和大小可以借助turtle.setup()方法实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python图形界面的设计,Turtle库的使用 的相关文章

  • Python包不安装子模块

    我在 dev 分支中创建了一个具有以下结构的包 在验证包安装正确之前不会合并到 main mypackage init py setup py requirements txt module py subpackage one init p
  • 帮助需要在可选条件下编写正则表达式[关闭]

    我有一个日志文件包含如下内容 log Using data from yyyy mm dd 2011 8 3 0 files queued for scanning Warning E test H ndler pdf File not F
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • 将打开关闭的 Google Chrome 浏览器添加到 Selenium linkedin_scraper 代码中

    我正在尝试抓取一些知名人士的 LinkedIn 个人资料 该代码获取一堆 LinkedIn 个人资料 URL 然后使用Selenium and scrape linkedin收集信息并将其作为 json 文件保存到文件夹中 我遇到的问题是
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 我怎样才能在python cgi中找到上传的文件名

    我制作了如下简单的网络服务器 import BaseHTTPServer os cgi import cgitb cgitb enable html
  • 使用信号时出现 django TransactionManagementError

    我有一个与 django 的用户和 UserInfo 一对一的字段 我想订阅用户模型上的 post save 回调函数 以便我也可以保存 UserInfo receiver post save sender User def saveUse
  • 通过鼻子测试检查某个函数是否发出警告

    我正在使用编写单元测试nose http somethingaboutorange com mrl projects nose 0 11 2 我想检查函数是否引发警告 该函数使用warnings warn 这是很容易就能做到的事情吗 def
  • Python 使用 M2Crypto 通过 S/MIME 对消息进行签名

    我现在花了几个小时 但找不到我的错误 我想要一个简单的例程来创建 S MIME 签名消息 稍后可以与 smtplib 一起使用 这是我到目前为止所拥有的 usr bin python2 7 coding utf 8 from future
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • 理解@property装饰器和继承[重复]

    这个问题在这里已经有答案了 这里是 Python 3 以防万一它很重要 我试图正确理解如何实现继承 property使用 我已经搜索了 StackOverflow 并阅读了大约 20 个类似的问题 但无济于事 因为他们试图解决的问题略有不同
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何使用 jira-python 设置 fixVersions 字段

    我正在尝试使用 jira python 模块 http jira python readthedocs org en latest 更新现有的 JIRA 具体来说 我正在尝试设置问题的fixesVersion 列表 我已经尝试了一段时间但没
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 提交表格并上传带有请求的文件

    我正在努力提交特定的表格蟒蛇请求 http www python requests org 我想使用它的网站上的其他表单工作正常 我可以提交登录表单等 这只是我遇到问题的文件上传 显然 提交表单效果很好 因为我从网站收到一条消息 说 请返回
  • Floyd-Warshall 算法:获取最短路径

    假设一个图由一个表示n x n维数邻接矩阵 我知道如何获得所有对的最短路径矩阵 但我想知道有没有办法追踪所有最短路径 Blow是python代码实现 v len graph for k in range 0 v for i in range
  • 为 Python 2.4 改进“with”语句的直接替换

    您能否建议一种方法来编写可在 Python 2 4 中使用的 with 语句的直接替换代码 这将是一个 hack 但它可以让我更好地将我的项目移植到 Python 2 4 EDIT 删除了不相关的元类草图 只需使用 try finally
  • 如何使用数据库在 Django 中的应用程序之间交换数据?

    我正在使用 Django 在网络上工作 我创建了 2 个应用程序 第一个用于客户端注册并将其数据添加到数据库 第二个应用程序供用户访问和查看交互界面 这个想法是使用第二个应用程序从数据库中的客户端获取数据 并使用它向用户显示一些信息 我的问
  • 从 Python 中编译的正则表达式中提取命名组正则表达式模式

    我有一个 Python 正则表达式 其中包含多个命名组 但是 如果先前的组已匹配 则可能会错过与一组匹配的模式 因为似乎不允许重叠 举个例子 import re myText sgasgAAAaoasgosaegnsBBBausgisego
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该

随机推荐

  • 服务里面找不到MySQL

    今天在连接数据库时发现自己的数据库出现了问题 在命令窗口输入 net start mysql 命令 还是启动不了 发现在服务里面竟然没有mysql服务了 1 以管理员身份运行cmd 切换到mysql安装目录的bin路径下 2 运行命令 my
  • C++构造函数简单实现电梯控制程序

    对于电梯 属性之一就是位置 所以要实现这一程序 要设置电梯的初始位置和按下电梯按钮改变的电梯的位置 代码如下 include
  • 【Linux】利用云服务器搭建云盘替代百度网盘、OneDrive等,docker安装seafile服务端,实现网页端上传下载,本地Linux、Windows安装客户端实时同步

    写在前面 博主使用OneDrive比较多 教育版有1t的大小 但是由于OneDrive在Linux系统中通过API不能连接学校的教育版 因此迫切需要一个云盘来替代OneDrive 由于之前也使用过Seafile 因此考虑使用Seafile搭
  • 编辑器正则替换px为rem

    正则部分 d d px 被替换部分 calc 1rem 100 注 此方法只能替换原css文件内无calc 运算的
  • 关于Unicode,UTF-8,GB编码详解

    内容来自网络 有部分修正 一 首先我们需要明白关于字符 character 字符集 character set 字符编码方式 character encoding 的概念 字符 字符是抽象的最小文本单位 它没有固定的形状 可能是一个字形 而
  • [901]sqlite数据库的导出与导入

    文章目录 SQLite 获取所有表名 通过 sqlite3 test db 命令进入sqlite数据库的shell 操作 python 脚本 help 直接导出csv文件 SQLite 仅仅支持 ALTER TABLE 语句的一部分功能 我
  • ansible常用模块使用方法

    ansible playbook执行方法 这个是你选择的主机 hosts webservers 这个是变量 vars http port 80 max clients 200 远端的执行权限 remote user root tasks 如
  • 实战技术产品经理

    文章转自 人人都是产品经理 并不代表企业实战 工具使用 办公工具的使用比如AXURE OFFICE 云笔记 PS等 决定办公效率 系统熟练 对后端数据及前端设计规范的了解程度 决定验收能力和设计合理度 沟通表达 对开发跟进及资源争取方面的推
  • 【强化学习】

    强化学习DQN 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 强化学习DQN DQN算法的简介 一 环境的介绍 二 DQN算法 1 DQN算法的关键技术 2 DQN代码 2 1 导入库 2 2 定义类 2 3
  • Ubuntu 22.04.3 LTS安装

    最近换电脑了 准备重新装一下ubuntu 多年前装过ubuntu很老的版本 现在发现官网最新的LTS版本是 Ubuntu 22 04 3 LTS 版本 那重新装的话 肯定装最新的版本了 这里我记录下自己的安装过程 作为以后的笔记查看 我的环
  • Android 添加开启/关闭应用信息界面的接口

    修改记录 mt67xx 11 0 应用信息界面是个Fragment不是Activity 不能用pm setComponentEnabledSetting方法做禁用 a alps vendor mediatek proprietary pac
  • oracle 12.2.0.1 opatch lsinventory时报LsInventorySession failed: RawInventory gets null OracleHomeInfo

    grid node1 opatch lsinventory detail oh u01 app 12 2 0 grid Oracle Interim Patch Installer version 12 2 0 1 25 Copyright
  • Socks5代理:网络安全与爬虫之利器

    一 Socks5代理 简介与工作原理 Socks5代理 全称为Socket Secure 5代理 是一种允许用户通过代理服务器进行网络连接的技术 它是Socks协议的最新版本 在网络安全和数据传输方面有着显著的优势 Socks5代理与其他代
  • `计算机知识` 驱动程序

    catalog 驱动 全称为 设备驱动程序 Device driver 首先 我们的计算机 是无法直接和 外部硬件设备 显卡 声卡 进行通信的 因为 我们的计算机 OS 编程语言 使用的是 代码 而外部硬件设备 识别的是 电子信号 这两个是
  • 基于Java的学生管理系统

    学生管理系统ManageSystem 一 系统架构与环境 1 1 springboot2 3 4 1 2 maven3 3 9 1 3 jdk1 8 1 4 mysql5 7 1 5 ssm架构单服务节点 二 具备的功能 1 用户管理 2
  • Digital Ocean 搭建属于自己的网站

    首先 需要Digital Ocean账号申请以及环境搭建的参考博客 https blog csdn net hunzhangzui9837 article details 85209245 下面 开始Digital Ocean 网站搭建 1
  • 内存单位及换算

    单位换算 内存单位及换算 位 bit 数据储存最小单位 字节 Byte 基本数据存储单位 内存单位及换算 换算单位太多 记下来供查阅 位 bit 二进制一个数字 0或1 即是一位 数据储存最小单位 字节 Byte 每8位为一个字节 1Byt
  • Vue Element Form表单 resetFields重置无效

    原因有两点 el form 标签需要绑定 ref 和 model 属性 el form item 标签要绑定 prop 属性 重置表单 添加一个是否加载的开关 v if dialogVisible 由 dialogVisible的值来 控制
  • chatgpt赋能python:Python量化数据来源-介绍

    Python量化数据来源 介绍 Python在金融量化分析领域中得到了广泛的应用 这部分应用通常被称为Python量化金融 Python量化数据来源是Python量化金融分析的基础 只有良好的数据来源才能保证分析的准确性和有效性 Pytho
  • Python图形界面的设计,Turtle库的使用

    一 学习目标 1 Turtle库的简介 2 调用Turtle库 3 绘画起点和方向 4 画布 二 知识点 1 Turtle库的简介 Turtle库是Python语言中一个很流行的绘图图像函数库 中文意思是甲鱼 海龟 所以也称为海龟库 Tur