109. Python的turtle库简介

109. Python的turtle库简介

【目录】

文章目录

  • 109. Python的turtle库简介
    • 1. 什么是turtle库?
    • 2. 用turtle库绘制一个爱心图案
    • 3. 库的导入方法
      • 3.1 直接导入整个库
      • 3.2 从库中导入特定的函数或类
      • 3.3 导入库中的所有内容
      • 3.4 为导入的库设置别名
      • 3.5 为导入的函数或变量设置别名
    • 4. turtle库常用的绘图命令

【正文】

1. 什么是turtle库?

turtle[ˈtɜːtl]:海龟。

【功能】

编写指令来控制一个虚拟的小海龟(turtle即箭头)在屏幕上移动,从而绘制出各种图形。

这个虚拟海龟可以看作是一个画笔,它能够在画布上移动,画出用户想要的图案。

turtle库提供了一系列的函数和方法来控制这个虚拟海龟的行为,包括前进、后退、转向等动作。

用户可以绘制出直线、圆形、多边形等基本图形,甚至可以创建更复杂的图案和设计。

turtle库允许设置画笔的颜色、粗细以及画布的大小和背景颜色等属性,使得绘制出的图形更加丰富和个性化。

2. 用turtle库绘制一个爱心图案

【效果展示】

在这里插入图片描述

【代码展示】

# 绘制爱心图案import turtle# 创建画布和海龟对象
canvas = turtle.Screen()
canvas.bgcolor("white")
pen = turtle.Turtle()
# 设置画笔颜色和填充颜色
pen.color("red", "pink")
pen.pensize(3)
pen.speed(2)# 绘制爱心形状
pen.up( )
pen.goto(0,-100)
pen.down()
pen.begin_fill()
pen.left(45)
pen.forward(150)
pen.circle(75, 180)
pen.right(90)
pen.circle(75, 180)
pen.forward(150)
pen.end_fill()# 隐藏画笔
pen.hideturtle()# 保持窗口打开,直到用户关闭它
turtle.done( )

【温馨提示】

后面的文章会对上述的代码进行逐行解析。

【源码文件】

109-绘制爱心图案.py

私信作者领取。

3. 库的导入方法

turtle库是Python标准库

使用前无需安装,导入即可调用。

导入库通常有以下几种方法。

3.1 直接导入整个库

【语法】

import turtle

使用import关键字导入整个库。

通过库名turtle作为前缀来访问turtle库中的所有函数和类。

即:每次调用库的类、方法等前面都要将turtle库名作为前缀。

【代码示例】

import turtle# 实例化类创建画笔对象
# 变量=库名.类名( )
# 导入的是库名,调用时库名turtle作为前缀
# 调用turtle库的Turtle类
pen = turtle.Turtle( )

3.2 从库中导入特定的函数或类

【语法】

from turtle import function_name, class_name

从库中导入特定的函数或类,导入之后可以直接使用这些函数或类,无需加前缀。

【代码示例】

from turtle import Turtle# 实例化类创建对象
# 前缀turtle库名不需要
# Turtle是类名,类名首字母大写
# 实例化类创建对象:对象名=类名() 
pen = Turtle( )

从turtle库中导入Turtle类。

编写代码时不需要通过库名来引用它们,直接使用类名即可。

3.3 导入库中的所有内容

【语法】

from turtle import *

导入turtle库中的所有所有函数和类,可以直接使用库中的函数和类,无需加前缀。

【代码示例】

下面的代码可绘制一个正方形。

from turtle import *# 设置画笔速度
speed(1)# 绘制正方形
for _ in range(4):forward(100)right(90)# 关闭窗口
done()

3.4 为导入的库设置别名

【语法】

import numpy as np

将numpy库导入并设置了别名np。

调用时将库名numpy简写为np。

【代码示例】

import numpy as np
np.array() 

3.5 为导入的函数或变量设置别名

【语法】

from math import sqrt as sq

将math库中的sqrt函数导入并设置了别名sq,可以直接使用sq()调用该函数。

【温馨提示】

在使用from … import …语句导入特定函数或变量时,如果库中存在与导入函数或变量同名的函数或变量,那么导入的函数或变量将会覆盖原有的函数或变量。

因此,在使用from … import …语句导入时,需要确保导入的函数或变量名称与现有名称不冲突,或者使用import … as …语句为导入的库设置别名,以避免命名冲突。

在这里插入图片描述

4. turtle库常用的绘图命令

# 画布控制
turtle.screensize() #设置画布的大小,可以指定宽度、高度和背景颜色。
turtle.setup(width=(),height=()) #:设置窗口的尺寸,但不改变画布大小,只改变可视区域## 画笔控制命令# 画笔颜色
pencolor() #返回当前画笔颜色
fillcolor()#设置或返回填充颜色# 画笔状态
penup()   # 抬起画笔,移动时不绘制图形
pendown() # 落下画笔,移动时绘制图形# 画笔速度
speed(speed) #设置海龟的绘制速度,speed参数取值范围为0-10,0表示最快,10表示最慢# 画笔粗细
width(width)#设置画笔粗细,width参数为正整数,表示线条宽度# 画笔填充
begin_fill() # 开始填充图形
end_fill()   # 结束填充图形# 画笔隐藏与显示
hideturtle() # 隐藏画笔。
showturtle() # 显示画笔。# 画笔形状
shape(shape) # shape参数可以是"arrow"、"turtle"、"circle"、"square"、"triangle"、"classic"等# 画笔方向
setheading(angle) # 设置海龟的朝向,angle参数是以度数为单位的角度值# 画笔清屏
reset() #清除当前窗口中的图形,重新设置海龟的初始位置和状态# 画笔回家
home() # 将海龟移动到初始位置# 画笔移动:
pen.forward(distance)#:向前移动指定的距离。
pen.backward(distance)#:向后移动指定的距离。
pen.left(angle)#:向左转指定的角度。
pen.right(angle)#:向右转指定的角度。
pen.circle(radius, extent=None, steps=None)#:画一个圆弧,指定半径和角度#其他功能:
pen.hideturtle()#:隐藏画笔图标
pen.showturtle()#:显示画笔图标
pen.speed(speed=None)#:设置画笔移动速度# 绘制文字:
pen.write(arg, font=("Arial", 8, "normal"))#:在当前位置写入文本

上述命令在后面的文章会逐一进行讲解。

【参考书籍】

《码上行动 用ChatGPT学会Python编程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴Java开发规范——编程规约(3)

# 阿里巴巴Java开发规范——编程规约(3) 编程规约 (四) OOP规约 1.【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中 这条编程规范的目的是为了保持代码的清晰性、可读性…

AOP

代理模式 提出问题 现有缺陷 假设我们有一个计算类,里面有加减乘除四个方法,现在我们要为这四个方法添加日志,即在方法执行的前后分别输出一句话,这时我们会发现如下缺陷: 1.对核心业务有干扰。核心业务是加减乘除…

货拉拉0-1数据指标体系构建与应用

目录 一、背景 二、指标体系搭建 2.1 指标设计 2.2 指标体系搭建 2.3 指标维度拆解 三、指标标准化建设 四、指标元数据管理 五、指标应用&未来规划 原文大佬介绍的这篇指标体系构建有借鉴意义,现摘抄下来用作沉淀学习。如有侵权请告知~ 一、背景 指标…

汽车摄像头匿名化处理解决方案,保护信息的安全性和隐私性

随着智能交通和自动驾驶技术的迅猛发展,汽车摄像头已成为现代汽车不可或缺的一部分,摄像头所捕捉的图像信息也引发了日益严峻的信息安全问题。如何在充分利用摄像头功能的同时,保障个人隐私和信息安全,已成为企业亟待解决的问题。…

IP地址定位技术引发的个人隐私保护问题

IP地址定位技术对互联网的影响深远且多面,它不仅改变了网络管理与优化的方式,还极大地推动了在线广告营销、电子商务、地理信息服务等多个领域的发展。然而,与此同时,它也引发了一系列关于个人隐私保护的问题。 首先,I…

vue的学习之用vue写一个hello,vue

根据以下步骤下载vue.js 介绍 — Vue.js 创建一个damo.html &#xff0c;引入vue.js即可 <body><div id"app">{{ message }}</div><!-- Vue --><!-- 开发环境版本&#xff0c;包含了有帮助的命令行警告 --><script src"js/vu…

清华新突破,360°REA重塑多智能体系统:全方位提升复杂任务表现

引言&#xff1a;多智能体系统的新篇章——360REA框架 在多智能体系统的研究领域&#xff0c;最新的进展揭示了一种全新的框架——360REA&#xff08;Reusable Experience Accumulation with 360 Assessment&#xff09;。这一框架的提出&#xff0c;不仅是对现有系统的一次重大…

如何修改WordPress数据库表前缀以提高安全性

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;吸引了数以百万计的用户。然而&#xff0c;正因为其广泛的使用&#xff0c;WordPress网站也成为了黑客攻击的目标之一。其中一个最常见的安全漏洞是使用默认的数据库表前缀wp_&#xff0c;使得黑客能够更轻松地进行大…

Oracle交换分区测试

1、用exchange分区表减少初始化过程中对业务中断的影响 2、创建分区表 create table t_p (id number,name varchar2(30),addr varchar2(50)) partition by range(id) (partition p1 values less than(10), partition p2 values less than(20), partition p3 values less …

sql(ctfhub)

一.整数型注入 输入1 输入2 输入2-1&#xff0c;回显为1的结果&#xff0c;说明是数字型&#xff0c;只有数字型才可加减 判断字段数为2 查询数据库 查表 查列 显示flag内容 二.字符型注入 输入1 输入2 输入2-1&#xff0c;说明为字符型&#xff0c;不是数字型 判断闭合方式为…

【数据分析面试】27. 计算广告评论比例 (SQL)

题目: 计算广告评论比例 假设你有一个ads表&#xff0c;包含ID和广告名称&#xff0c;比如“劳动节衬衫促销”。feed_comments表保存了不同用户在常规信息流中对广告的评论。moments_comments表保存了不同用户在moments中对广告的评论。 编写一个查询&#xff0c;获取广告在f…

问题总结笔记

1.向量旋转 问题&#xff1a; 将一个向量旋转90 方法&#xff1a;旋转矩阵 FVector FrontDir EndMousePoint - Point; FrontDir.Normalize(); FVector Left FVector(-FrontDir.Y, FrontDir.X, 0); Verties.Add(Point Left * (WallWedith / 2)); Verties.Add(FVector(Vertie…

BFS 专题 ——FloodFill算法:733.图像渲染

文章目录 前言FloodFill算法简介题目描述算法原理代码实现——BFSCJava 前言 大家好啊&#xff0c;今天就正式开始我们的BFS专题了&#xff0c;觉得有用的朋友给个三连呗。 FloodFill算法简介 中文&#xff1a;洪水灌溉 举个例子&#xff0c;正数为凸起的山峰&#xff0c;负…

攻防世界---misc---easycap

1.下载附件是一个流量包&#xff0c;拿到wireshark中分析 2.查看分级协议 3.过滤data 4.追踪tcp流 5.得到flag

OpenCV与AI深度学习 | OpenCV如何读取仪表中的指针刻度

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;OpenCV如何读取仪表中的指针刻度 最近遇到一个问题&#xff0c;如何读取仪表中的指针指向的刻度。 解决方法有多种&#xff0c;比如&#xff…

Linux使用Docker部署DashDot访问本地服务器面板

文章目录 1. 本地环境检查1.1 安装docker1.2 下载Dashdot镜像 2. 部署DashDot应用 本篇文章我们将使用Docker在本地部署DashDot服务器仪表盘&#xff0c;并且结合cpolar内网穿透工具可以实现公网实时监测服务器系统、处理器、内存、存储、网络、显卡等&#xff0c;并且拥有API接…

【C++】双指针算法:复写零

1.题目 别看这是一道简单题&#xff0c;它的通过率低于一些中等甚至困难的题目&#xff01; 大大增加这道题目难度的是最后一句话&#xff1a;1.不可越界写入。2.就地修改。 如果可以再创建一个数组的话&#xff0c;那么这道题目就会非常简单&#xff0c;但这道题目必须要求在…

Linux的学习之路:18、进程间通信(2)

摘要 本章主要是说一下命名管道和共享内存 目录 摘要 一、命名管道 1、创建一个命名管道 2、匿名管道与命名管道的区别 3、命名管道的打开规则 4、代码实现 二、system V共享内存 1、共享内存 2、共享内存函数 三、代码 四、思维导图 一、命名管道 1、创建一个命…

13.Nacos简介,下载,安装,启动-windows

Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud的一个组件。 相比Eureka功能更加丰富&#xff0c;服务注册与发现和分布式配置。 Nacos下载地址&#xff1a; https://github.com/alibaba/nacos windows下载nacos-server-1.4.1.zip文件 nacos是基于java语言实现的&…

【系统架构师】-案例考点(三)

1、信息系统架构ISA设计 四种架构模型&#xff1a; 1&#xff09;单机应用 2&#xff09;客户机/服务器模式&#xff1a;两层、三层C/S、B/S模型、MVC模式等 3&#xff09;面向服务架构SOA 4&#xff09;企业数据交换总线&#xff1a;不同企业应用之间通过信息交换的公共频…