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 方法中 这条编程规范的目的是为了保持代码的清晰性、可读性…

HTTP协议中的请求方法及其在前端的应用

简介: HTTP(Hypertext Transfer Protocol)是用于在网络上传输超文本的协议,定义了多种请求方法,用于指定客户端对服务器资源的操作方式。。 1. GET请求 GET请求用于从服务器获取资源,是最常见的请求方法之…

stm32开发三、单片机关键字extern

单片机关键字extern 1 定义 extern 用于指示变量或函数是在其他文件中定义的,但在当前文件中也要使用它。 2 使用场景 当你想在一个文件中使用另一个文件中定义的全局变量或函数时,你可以使用 extern。 它只是声明,不分配内存或分配存储空…

【C++提高】算法

算法 一、遍历算法1. for_each2. transform 二、查找算法1. find2. find_if3. adjacent_find4. binary_search5. count6. count_if 三、排序算法1. sort2. random_shuffle3. merge4. reverse 四、拷贝和替换算法1. copy2. replace3. replace_if4. swap 五、算术生成算法1. accu…

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;不仅是对现有系统的一次重大…

Git提交/拉取的顺序

Git提交代码的流程 1、git add . 2、git commit -m “commit info” 3、git pull origin master 4、git push origin master 第一步表示将本地所有改动代码添加到暂存区 第二步表示将待提交内容和描述信息放到本次提交中 第三步表示将远程代码更新到本地&#xff08;用于解决冲…

P8739 [蓝桥杯 2020 国 C] 重复字符串

[蓝桥杯 2020 国 C] 重复字符串 题目描述 如果一个字符串 S S S 恰好可以由某个字符串重复 K K K 次得到&#xff0c;我们就称 S S S 是 K K K 次重复字符串。例如 abcabcabc 可以看作是 abc 重复 3 3 3 次得到&#xff0c;所以 abcabcabc 是 3 3 3 次重复字符串。 同…

nodejs 版本管理

nvm介绍 管理windows系统下nodejs的多个版本&#xff0c;包括安装、卸载、切换等功能。 安装nvm 在github官网下载nvm的安装包&#xff0c;下载完成之后安装即可。 nvm的基本用法 查看当前nodejs的版本 使用nvm list查看以安装的版本以及当前版本&#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 …

【Python快速上手(一)】

目录 Python快速上手&#xff08;一&#xff09;Python3 基础语法1. 编码2. 标识符3. Python 保留字4. 注释5. 行与缩进6. 多行语句7. import 与 from...import8. 命令行参数 Python快速上手&#xff08;一&#xff09; Python3 基础语法 1. 编码 Python 3 默认使用 UTF-8 编…

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;负…