2.4 turtle语法元素分析 | Python语言程序设计(嵩天)

文章目录

  • 课程简介
  • 第二章 Python基本图形绘制
  • 2.4 turtle语法元素分析
    • 2.4.1 库引用与import
    • 2.4.2 turtle画笔控制函数
    • 2.4.3 turtle运动控制函数
    • 2.4.4 turtle方向控制函数
    • 2.4.5 循环语句与range()函数(基本循环语句)
    • 2.4.6 "Python蟒蛇绘制"代码分析
    • 内容小结
  • 版权说明


2.4 turtle语法元素分析 | Python语言程序设计(嵩天)


课程简介

计算机是运算工具,更是创新平台,高效有趣地利用计算机需要更简洁实用的编程语言。Python简洁却强大、简单却专业,它是当今世界最受欢迎的编程语言,学好它终身受用。请跟随我们,学习并掌握Python语言,一起动起来,站在风口、享受创新!
—— 课程团队

在这里插入图片描述


MOOC课程:
Python语言程序设计(嵩天 、黄天羽 、礼欣)
北京理工大学

课程视频地址:

课程视频-B站

授课目标:

本课程适合如下教学目标:

  • 程序设计入门课:面向各层次各专业大学在校生、部分优秀高中生,作为程序设计入门课程
  • 体系化编程基础:面向拟构建坚实编程能力的自学者,作为不断奋斗的参考在线课程
  • Python科目备考:面向全国计算机等级考试二级Python科目的备考考生,作为在线备考资源
  • 再试一次的尝试:面向拟放弃计算机或编程学习的学习者,作为再试一次的课程资源,学不会这门课学再放弃不迟…

第二章 Python基本图形绘制


2.4 turtle语法元素分析

  • 库引用与import
  • turtle画笔控制函数
  • turtle运动控制函数
  • turtle方向控制函数
  • 循环语句与range()函数
  • "Python蟒蛇绘制"代码分析

2.4.1 库引用与import

库引用。
是扩充Python程序功能的方式。

库引用的三种方法:
① 使用 import 保留字完成相关库的引用,采用 <a>.<b>() 的编码风格。
不会出现函数重名问题。

#方法一: 
import <库名>    #调用相关库
<库名>.<函数名>(<函数参数>)    #调用相关函数

<库名>.<函数名>是新程序中的函数名。
因为 <a>.<b>() 的形式本身就是一个统一的名字。

#Python蟒蛇绘制示例,方法一: 
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):turtle.circle(40, 80)turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()

② 简化 turtle 代码调用:使用 from he import 保留字共同完成。
易出现函数重名问题。

#方法二:  
from <库名> import *
<函数名>(<函数参数>)#或者,也可写作以下形式:
from <库名> import <函数名>
<函数名>(<函数参数>)

<函数名>在程序中是独立的函数名。

  • 如果程序(代码)中 import 到了很多库,且这些库中的函数名字之间可能存在冲突,则用: import <库名>

  • 如果程序(代码)很短,且只使用单一的一个库,也没有自己定义的函数,可用: from <库名> import *

库中的某一个函数名称可能会与程序中用户自定义的一个函数名称重名(或与用户使用的另一个库内函数重名),函数名字冲突会使程序运行不一致。

#Python蟒蛇绘制示例,方法二: 
#采用<a>.<b>()方式调用库中函数,能显示标明函数来源,在引用较多库时,代码的可读性更好,
#建议初学者采用 <a>.<b>() 这种形式调用库函数。
from turtle import * 
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):circle(40, 80)circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()
#Python蟒蛇绘制示例,方法二: 
#利用保留字直接引用库中函数,可使代码更简洁。
#可能出现用户自定义函数名与库函数名重名问题,因此,不建议初学者采用此种形式调用库函数。
from turtle import setup, penup, fd, pendown, done 
from turtle import pensize, pencolor, seth, circle
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):circle(40, 80)circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()

③ 使用 importas 保留字共同完成。
冗余的代码量最少,同时防止函数重名。

#方法三: 
import <库名> as <库别名>    #库别名
<库别名>.<函数名>(<函数参数>)

<库别名>.<函数名> 构成当前程序(代码)中的独立名字。
给调用的外部库关联一个更短、更适合自己的名字。对编写程序(代码)更便利,这种方式下,在引入、调用库中函数时产生的冗余代码量最少,同时又防止了库函数调用时重名的问题。

#Python蟒蛇绘制示例,方法三: 
import turtle as t 
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):t.circle(40, 80)t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()

2.4.2 turtle画笔控制函数

画笔操作后一直有效,一般成对出现。

  • turtle.penup() 别名 turtle.pu()
    抬起画笔,海龟在飞行
    画笔抬起时,海龟(画笔)行进的轨迹不会在画布上留下痕迹。

  • turtle.pendown() 别名 turtle.pd()
    落下画笔,海龟在爬行

一般用 turtle.penup() 让海龟飞到某个位置,再用 turtle.pendown() 从这个位置开始绘图。

别名:是为了让编程更便捷,turtle库提供的一种冗余性函数,它与对应函数名的功能完全一致,只是名字不同。


画笔设置后一直有效,直至下次重新设置

  • turtle.pensize() 别名 turtle.width()
    画笔宽度,海龟的腰围
    设置画笔的宽度数值、粗细数值,相当于海龟腰围。

  • turtle.pencolor(color)
    画笔颜色,海龟在涂装
    color 为对应颜色的小写英文字符串或 r,g,b 数值。

参数 color 表示色彩,可通过 字符串 或 RGB值 赋予海龟颜色。
turtle.pencolor(color)color 有三种具体形式:

  • 颜色字符串:turtle.pencolor("colorstring")
    #例如:将海龟涂装颜色改为紫色
    #注意,参数'purple'为小写英文字符串形式
    turtle.pencolor('purple')    #颜色的英文小写名称(字符串类型)
    
  • RGB的小数值:turtle.pencolor(r,g,b)
    #例如:将海龟涂装颜色改为紫色
    #注意,数值间用逗号隔开
    turtle.pencolor(0.63, 0.13, 0.94)    #小数值(浮点数类型)
    
  • RGB的元组值:turtle.pencolor((r,g,b))
    #例如:将海龟涂装颜色改为紫色
    #注意,这里的元组额外使用一对圆括号将3个整数值组成了函数turtle.pencolor()的独立元素参数
    turtle.pencolor((160, 32, 240))    #三个整数值为一组(元组类型)
    

2.4.3 turtle运动控制函数

控制海龟行进:走直线 & 走曲线

画笔设置后一直有效,直至下次重新设置

  • turtle.forward(d) 别名 turtle.fd(d)
    向前行进,海龟走直线
    d: 行进距离,可以为负数。
    具体行进距离单位为像素。
    d 为负数,海龟是倒退着行走。

  • turtle.circle(r,extent=none)
    海龟根据半径 r 绘制 extent 角度的弧线
    r: 默认r 为正数,圆心在海龟左侧 r r r 距离的位置,作逆时针绘制;
    r 为负数,则圆心在海龟右侧 r r r 距离的位置,作顺时针绘制。
    extent: 绘制角度,默认为 360° 整圆


在这里插入图片描述



2.4.4 turtle方向控制函数

控制海龟面对方向: 绝对角度 & 海龟角度

  • 绝对角度
    改变行进方向,海龟走角度(让海龟转向)

turtle.setheading(angle) 别名 turtle.seth(angle)
angle: 行进方向的绝对角度。即,将海龟当前的方向改变为某个绝对的角度。

#示例:
#绝对坐标:详见章节“turtle角度坐标体系”turtle.seth(45)    #将海龟转向为绝对坐标体系中的45°方向(即朝向为东北)turtle.seth(-135)    #将海龟转向为绝对坐标体系中的-135°方向(即朝向为西南)

在这里插入图片描述



  • 海龟角度
    在海龟视角下的转向方法。

turtle.left(angle) 海龟向左转
turtle.right(angle) 海龟向右转
angle: 在左转或右转的方向前提下,海龟所需旋转的角度。


注意:

  • 方向控制函数只改变海龟的朝向(当前面对的方向),并未让海龟在画布上作实际绘制。
  • 运动函数可以让海龟实际的行动,行进直线或曲线。

2.4.5 循环语句与range()函数(基本循环语句)

forin 保留字
range() 函数

循环语句:按照一定次数循环执行的一组语句

常用循环结构:

for <变量> in range(<参数>):<被循环执行的语句>
  • for in 之后缩进的代码块将被循环执行<参数>次。
  • <参数> 为 ≥0 的整数,指循环的次数。
  • <变量> 表示每次循环的计数,若<参数>值固定不变,则<变量>的取值为 从 0 依次到 ( 参数 − 1 ) 0 依次到 (参数-1) 0依次到(参数1)
#示例1:#range(5)指循环五次,
#每循环一次,i值就从0开始计数,然后逐渐加1,
#因此打印效果为0到4的五个字符。
>>> for i in range(5):print(i)0
1
2
3
4#示例2:#打印结果中,hello:与数字之间有了一个空格
#原理参考以下print()函数的使用方法:
#  语法:
#       print(*objects, sep=' ', end='\n')
#  参数:
#       objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
#       sep -- 用来间隔多个对象,默认值是一个空格。
#       end -- 用来设定以什么结尾。默认值是换行符 \n,可换成其他字符串。>>> for i in range(5):print("hello:",i)hello: 0
hello: 1
hello: 2
hello: 3
hello: 4


range() 函数: 产生循环计数序列

常见用法:

  • range(N)
    产生 0 到 N-1的整数序列,共N个
rang(5):0,1,2,3,4
  • range(M,N)
    产生 M 到 N-1的整数序列,共N-M个
rang(2,5):2,3,4

注意:

  • range() 是一个函数,对函数赋予多个参数时要用逗号分隔,因此是(M,N)

  • 在Python基础语法体系中,rang() 函数主要用做 与 for in 搭配形成计数循环。


turtle.done()函数

Python蟒蛇绘制程序代码中的最后一行:

turtle.done()    #绘制完成后保留窗体,不自动退出程序
  • 绘制完成后,保留最后的绘图界面。
    若该函数在文件式的代码描写方法中作为整个turtle绘制程序的最后一部分,则运行turtle程序完成绘制后,程序不会自动退出绘图界面。

  • 绘制完成后,自动关闭绘图界面。
    若希望程序运行完成后自动退出,则删除最后的这行 turtle.done() 即可。


2.4.6 "Python蟒蛇绘制"代码分析

略(详见对应章节的课程视频)。



内容小结

  • 库引用: import、from…import、import…as…
  • penup()、pendown()、pensize()、pencolor()
  • fd()、circle()、seth()
  • 循环语句:for和in、range()函数


版权说明

1.4bqsm

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

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

相关文章

软件测试基础 - 测试覆盖率

一、覆盖率概念 覆盖率是用来度量测试完整性的一个手段&#xff0c;是测试技术有效性的一个度量。分为&#xff1a;白盒覆盖、灰盒覆盖和黑盒覆盖&#xff1b;测试用例设计不能一味追求覆盖率&#xff0c;因为测试成本随覆盖率的增加而增加。 覆盖率&#xff08;至少被执行一次…

stm32的时钟、中断的配置(针对寄存器),一些基础知识

一、学习参考资料 &#xff08;1&#xff09;正点原子的寄存器源码。 &#xff08;2&#xff09;STM32F103最小系统板开发指南-寄存器版本_V1.1&#xff08;正点&#xff09; &#xff08;3&#xff09;STM32F103最小系统板开发指南-库函数版本_V1.1&#xff08;正点&#xff0…

C++基础——基础语法

1 注释 C支持单行注释和多行注释。 单行注释 // 注释内容单行注释直到改行末尾&#xff0c;可以与代码放在同一行&#xff0c;在代码后面注释 多行注释 /* 注释内容 */包含在其中的都会被注释 2 变量 变量的作用是给指定的内存空间起名&#xff0c;方便操作这段内存。变…

哈希应用之位图

文章目录 1.位图概念2.面试题引入3.代码解决[配注释]4.位图应用4.1找到100亿个整数里只出现一次的整数4.2找两个分别有100亿个整数的文件的交集[只有1G内存]1.法一[使用于数据量<42亿]2.法二[适用于数据量大>42亿]3.在一个有100亿个int的文件中找到出现次数不超过2次的所…

AI伦理:如何确保人工智能的公平与透明

文章目录 什么是AI伦理&#xff1f;AI公平性AI透明性 为什么AI公平性和透明性重要&#xff1f;确保AI公平性的方法1. 数据收集和准备2. 算法和模型3. 解释和可解释性4. 持续监测 确保AI透明性的方法1. 记录决策2. 可解释性工具3. 用户教育 AI伦理的挑战和未来结论 &#x1f389…

STM32MP157汇编流水灯

.text .global _start _start: /* 使能GPIOE、GPIOF寄存器 RCC_MP_AHB4ENSETR * 基地址: 0x50000000 偏移地址: 0xA28 0x50000A28* RCC_MP_AHB4ENSETR[4]->1 RCC_MP_AHB4ENSETR[5]->1*/ LDR R0,0x50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<4)STR R1,[R0]LDR R0,0x…

C++ 学习系列 -- std::list

一 std::list 介绍 list 是 c 中的序列式容器&#xff0c;其实现是双向链表&#xff0c;每个元素都有两个指针&#xff0c;分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构&#xff0c;与数组连续内存空间不一样的地方在于&#xff0c;链表的空间是不…

【Java 进阶篇】HTML块级元素详解

HTML&#xff08;Hypertext Markup Language&#xff09;是用于创建网页的标记语言。在HTML中&#xff0c;元素被分为块级元素和内联元素两种主要类型。块级元素通常用于构建网页的结构&#xff0c;而内联元素则嵌套在块级元素内&#xff0c;用于添加文本和其他内容。本文将重点…

异常:找不到匹配的key exchange算法

目录 问题描述原因分析解决方案 问题描述 PC 操作系统&#xff1a;Windows 10 企业版 LTSC PC 异常软件&#xff1a;XshellPortable 4(Build 0127) PC 正常软件&#xff1a;PuTTY Release 0.74、MobaXterm_Personal_23.1 服务器操作系统&#xff1a;OpenEuler 22.03 (LTS-SP2)…

Ubuntu 22.04 安装系统 手动分区 针对只有一块硬盘 lvm 单独分出/home

自动安装的信息 参考自动安装时产生的分区信息 rootyeqiang-MS-7B23:~# fdisk /dev/sdb -l Disk /dev/sdb&#xff1a;894.25 GiB&#xff0c;960197124096 字节&#xff0c;1875385008 个扇区 Disk model: INTEL SSDSC2KB96 单元&#xff1a;扇区 / 1 * 512 512 字节 扇区大…

phpstudy本地域名伪静态

环境&#xff1a;WNMP(Windows10 Nginx1.15.11 MySQL5.7.26 【PHP 7.4.3 (cli) (built: Feb 18 2020 17:29:57) ( NTS Visual C 2017 x64 ) 】) 使用PhpStudy配置本地域名后&#xff0c;设置伪静态&#xff0c;这样在Web端打开网站就不需要输入index.php了&#xff0c;很简单…

架构方法、模型、范式、治理

从架构方法、模型、范式、治理等四个方面介绍架构的概念和方法论、典型业务场景下的架构范式、不同架构的治理特点这3个方面的内容

Pycharm操作git仓库 合并等

菜单 Git CommitPushUpdate ProjectPullFetchMergreRebase 查询 查询分支 查询本地所有分支 # 查询本地分支 git branch# 查询远程分支 git branch -rPycharm查看当前分支 步骤&#xff1a; Git->Branches 哈喽&#xff0c;大家好&#xff0c;我是[有勇气的牛排]&…

ELK集群 日志中心集群

ES&#xff1a;用来日志存储 Logstash:用来日志的搜集&#xff0c;进行日志格式转换并且传送给别人&#xff08;转发&#xff09; Kibana:主要用于日志的展示和分析 kafka Filebeat:搜集文件数据 es-1 本地解析 vi /etc/hosts scp /etc/hosts es-2:/etc/hosts scp /etc…

视频转GIF:快速生成有趣的动态图片

随着社交媒体的快速发展&#xff0c;GIF动态图片已经成为了人们表达情感、分享生活片段的重要方式。将视频片段转换成GIF动态图片&#xff0c;可以让人们更好地分享和表达自己的情感&#xff0c;也可以让一些有趣的瞬间变得更加生动有趣。本文将介绍如何将视频快速转换成GIF动态…

微信小程序wxs标签 在wxml文件中编写JavaScript逻辑

PC端开发 可以在界面中编写JavaScript脚本 vue/react这些框架更是形成了一种常态 因为模板引擎和jsx语法本身就都是在js中的 我们小程序中其实也有类似的奇妙写法 不过先声明 这东西不是很强大 我们可以先写一个案例代码 wxml代码参考 <view><wxs module"wordSt…

Mac 点击桌面 出现黑边框 解决

1、桌面黑框效果 2、解决&#xff1a;设置为 仅在台前调度中

数据结构-顺序存储二叉树

文章目录 目录 文章目录 前言 一 . 什么是顺序存储二叉树 二 . 模拟实现 前序遍历 总结 前言 大家好,今天给大家讲一下顺序存储二叉树 一 . 什么是顺序存储二叉树 顺序存储二叉树是一种将二叉树的节点按照从上到下、从左到右的顺序存储在数组中的方法。具体来说&#xff0c;顺…

文件操作 和 IO - 详解

一&#xff0c;认识文件 1.1 树形结构组织和目录 文件是对于"硬盘"数据的一种抽象&#xff0c;在一台计算机上&#xff0c;有非常多的文件&#xff0c;这些文件是通过 "文件系统" 来进行组织的&#xff0c;本质上就是通过 "目录"(文件夹) 这样…

WebGoat 靶场 JWT tokens 四 五 七关通关教程

文章目录 webGoat靶场第 四 关 修改投票数第五关第七关 你购买书&#xff0c;让Tom用户付钱 webGoat靶场 越权漏洞 将webgoat-server-8.1.0.jar复制到kali虚拟机中 sudo java -jar webgoat-server-8.1.0.jar --server.port8888解释&#xff1a; java&#xff1a;这是用于执行…