简述
通过经典实例(实例2)尝试 Python 编程。
目标 1:理解 Python 库的使用方法。
目标 2:掌握 turtle 库的基本使用,并能够进行基本的图形编程。
课件
代码汇总
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()
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()
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()
for i in range(5):
print(i)
"""
0
1
2
3
4
"""
for i in range(5):
print("Hello:", i)
"""
Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4
"""
for i in range(2, 5):
print(i)
"""
2
3
4
"""
import turtle as t
t.pensize(2)
for i in range(4):
t.fd(150)
t.left(90)
t.done()
import turtle as t
t.pensize(2)
for i in range(6):
t.fd(150)
t.left(60)
t.done()
import turtle as t
t.pensize(2)
for i in range(9):
t.fd(150)
t.left(80) # 720/9
t.done()
import turtle as t
t.pensize(2)
for i in range(4):
t.seth(90*i)
t.fd(150)
t.right(90)
t.circle(-150, 45)
t.goto(0,0)
t.done()
第 2 周课程导学
本周主要介绍的是一个 Python 的标准库 turtle 的基本使用。
对于 turtle 能够绘制出什么样的图形,可以上 Python123 平台查看其它同学上传的作品:
课前复习
.mp4%22%2C%22size%22%3A179635137%2C%22taskId%22%3A%22udbc1771c-84cd-47d9-b329-31f32db70a6%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189006448-6bf31e7c-e64f-4f3e-8907-cadefd69d851.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22aq6On%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#aq6On)
本课概要
.mp4%22%2C%22size%22%3A23161048%2C%22taskId%22%3A%22u10d6a9a9-29f9-48d7-ad0f-57e032df779%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189006440-f3f73330-9a39-4309-8a3d-fac4a03de3d3.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22icBhL%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#icBhL)
深入理解 Python 语言
看标题就知道,本节要聊的主题 —— “Python 是什么???”
Python 是什么?
Python 是最高产的语言。
Python 是唯一的超级语言。
—— 这可不是我说的哈!课件里是这么说的 -_-||
单元开篇
.mp4%22%2C%22size%22%3A10204365%2C%22taskId%22%3A%22u86222e6d-982e-4a85-b5c8-d486cff3b30%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188803421-1fc046d1-2ddb-45d3-9dad-565250a3087e.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22hwqqE%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#hwqqE)
计算机技术的演进
.mp4%22%2C%22size%22%3A106994310%2C%22taskId%22%3A%22u6e87e303-7030-4ba1-9a1a-67e7a9c09ff%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188803427-0095eca4-71c2-400d-8a5a-c411808bf1c3.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22sQ7Bl%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#sQ7Bl) | 2017 - 至今 | 人工智能时代【新计算时代】 | 人类的问题 | | —- | —- | —- | | 2008 - 2016(8 年) | 复杂信息系统时代 | 数据问题 | | 1981 - 2008(27 年) | 网络和视窗时代 | 交互问题 | | 1946 - 1981(35 年) | 计算机系统结构时代 | 计算能力问题 |
编程语言的多样初心
.mp4%22%2C%22size%22%3A115907423%2C%22taskId%22%3A%22u50eae369-9874-4e33-ab46-00ac988f90b%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188803426-92c3003a-9379-429f-b123-7762e022a963.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22g2p4x%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#g2p4x)
Python 是计算时代演进的选择!
🤔 如何看待不同的编程语言?
视频中的介绍蛮有道理的,从各编程语言所处历史时期来探讨。
在不同历史时期的语言,重点解决的问题是不一样的,我们可以结合当时待解决的核心问题入手,去对比不同语言之间的差异。
Python语言的特点
.mp4%22%2C%22size%22%3A112926998%2C%22taskId%22%3A%22uca3cd39d-2775-458a-a2e1-b0406b23bd5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188803425-d3aa0d02-5005-496a-83ae-8424b38c13c4.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22hgo0w%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#hgo0w) Python 语言是?
- 通用语言
- 脚本语言
- 开源语言
- 跨平台语言
- 多模型语言
如何看待Python语言?
- C/C++:Python归Python,C归C
- Java:针对特定开发和岗位需求
- HTML/CSS/JS:不可替代的前端技术,全栈能力
- 其他语言:R/Go/Matlab等,特定领域
- 掌握抽象并求解计算问题综合能力的语言
- 了解产业界解决复杂计算问题方法的语言
- 享受利用编程将创新变为实现乐趣的语言
“超级语言”的诞生
.mp4%22%2C%22size%22%3A81880912%2C%22taskId%22%3A%22ua9aeaddc-210f-417f-9369-92360b353f4%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188803433-495ce277-2e21-4aed-964f-43332598ff5c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22G34X5%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#G34X5) | 超级语言 | 粘性整合已有程序,具备庞大计算生态 | | —- | —- | | 高级语言 | 接近自然语言,编译器,与CPU型号无关 | | 汇编语言 | 有助记符,汇编器,与CPU型号有关 | | 机器语言 | 代码直接执行,与CPU型号有关 |
机器语言
- 一种二进制语言,直接使用二进制代码表达指令
- 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
- 完成 2+3 功能的机器语言
汇编语言
- 一种将二进制代码直接对应助记符的编程语言
- 汇编语言与CPU型号有关,程序不通用,需要汇编器转换
- 完成 2+3 功能的汇编语言
高级语言
- 更接近自然语言,同时更容易描述计算问题
- 高级语言代码与具体CPU型号无关,编译后运行
- 完成 2+3 功能的高级语言
超级语言
- 具有庞大计算生态,可以很容易利用已有代码功能
- 编程思维不再是刀耕火种,而是集成开发
- 完成 2+3 功能的超级语言
Python: 唯一的”超级语言”!
🤔 超级语言是什么鬼???
单元小结
.mp4%22%2C%22size%22%3A8805100%2C%22taskId%22%3A%22u41b6d3a6-71f4-4170-a8b0-4cb8653cb8a%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188819874-601713fb-fd54-4296-9476-6158688f0dd5.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22d3N5n%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#d3N5n)
- 计算机系统结构时代到人工智能时代的演进路线
- 五种编程语言的初心和历史使命
- Python语言的通用性、简洁性和生态性
- Python是以计算生态为标志的”超级语言”
实例2: Python 蟒蛇绘制
编写 Python 蟒蛇绘制实例的代码,体会 Python 绘图。
暂不要求理解每一行代码,后面会介绍。
问题分析
.mp4%22%2C%22size%22%3A28686004%2C%22taskId%22%3A%22ua8d2a2a2-16c7-4cfe-895e-2968245c806%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188896522-deb2b70f-8070-4d7a-9c46-5bfab2289f67.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22r8qpS%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#r8qpS)
实例编写
.mp4%22%2C%22size%22%3A35242044%2C%22taskId%22%3A%22ue02b6784-771b-43d5-8794-522213c66ec%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188896532-1ab2112d-44b6-4863-8dcd-1368d487f6df.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22IpBe7%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#IpBe7)
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()
举一反三
.mp4%22%2C%22size%22%3A33713443%2C%22taskId%22%3A%22ue79bd714-bf32-40c2-9e4a-6e050476c77%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188896537-8f8454d1-30e2-47a6-821a-50d3794605ba.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22eomGx%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#eomGx) Python语法元素理解
- Python蟒蛇绘制共17行代码,但很多行类似
- 清楚理解这17行代码能够掌握Python基本绘图方法
- 参考框架结构、逐行分析、逐词理解
程序参数的改变
- Python蟒蛇的颜色:黑色、白色、七彩色…
- Python蟒蛇的长度:1节、3节、10节…
- Python蟒蛇的方向:向左走、斜着走…
计算问题的扩展
- Python蟒蛇绘制问题是各类图像绘制问题的代表
- 圆形绘制、五角星绘制、国旗绘制、机器猫绘制…
- 掌握绘制一条线的方法,就可以绘制整个世界
模块1: turtle库的使用
单元开篇
.mp4%22%2C%22size%22%3A7657187%2C%22taskId%22%3A%22u71ba9eb6-de6d-405e-8db1-949fa261cb1%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188942948-47859c9e-e758-4a46-811d-e266144f22bc.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22TTku4%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#TTku4)
turtle 库基本介绍
.mp4%22%2C%22size%22%3A43911059%2C%22taskId%22%3A%22uc1609d08-ab70-4cff-b656-7ea17f7257b%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188942962-2ea3d066-ed73-4f30-9ef8-96e6f56f9a99.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22K1L1V%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#K1L1V)
- turtle(海龟)库
- 是 turtle 绘图体系的 Python 实现
- 是 Python 语言的标准库之一
- Python计算生态 = 标准库 + 第三方库
- 标准库:随解释器直接安装到操作系统中的功能模块
- 第三方库:需要经过安装才能使用的功能模块
- 模块:库Library、包Package、模块Module,统称模块
turtle 绘图窗体布局
.mp4%22%2C%22size%22%3A44125328%2C%22taskId%22%3A%22ue8df4b22-2f3a-4899-a8ee-dee62078aed%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188942967-84c94e4c-68a8-4717-85eb-efc00ab2c5fc.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22kBuYL%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#kBuYL)
turtle.setup(width, height, startx, starty)
- setup() 设置窗体大小及位置
- 4 个参数中后两个可选
- setup() 不是必须的
turtle 空间坐标体系
.mp4%22%2C%22size%22%3A50823957%2C%22taskId%22%3A%22u58c16d8f-c9f6-4c51-b10e-0c438c5380a%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188942962-2316bc6a-5741-4cc6-81fa-38d67ef168f5.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22SdmZM%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#SdmZM) turtle.goto(x, y)
turtle.circle(r, angle)
turtle.bk(d)
turtle.fd(d)
turtle 角度坐标体系
.mp4%22%2C%22size%22%3A36962733%2C%22taskId%22%3A%22ua2910495-89ae-4878-92ad-c375609cb9a%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188942974-a2bf8517-12cd-4dcc-bcf1-112e1bcaa96c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22ArYAY%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#ArYAY)
turtle.seth(angle)
turtle.left(angle)
turtle.right(angle)
RGB 色彩体系
.mp4%22%2C%22size%22%3A45933636%2C%22taskId%22%3A%22u37ee731a-30c3-4975-b051-300624c1356%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188962238-723886e2-cdfe-48fc-8f17-3ca262a618e1.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22Fi16Q%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#Fi16Q)
turtle.colormode(mode)
mode 表示模式,默认采用小数值模式 1.0
,可切换为整数值模式 255
。以白色为例,在小数值模式下,表示为 1, 1, 1
;在整数值模式下则表示为 255, 255, 255
。
turtle.colormode(1.0)
RGB 小数值模式tutle.colormode(255)
整数值模式
单元小结
.mp4%22%2C%22size%22%3A22514552%2C%22taskId%22%3A%22ua63b3bca-cf3d-4ac1-92b4-31568983737%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189049646-aa24dfb3-b949-42fb-819a-05b784ae76f9.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22L3dUR%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#L3dUR)
- turtle库的海龟绘图法
- turtle.setup()调整绘图窗体在电脑屏幕中的布局
- 画布上以中心为原点的空间坐标系: 绝对坐标&海龟坐标
- 画布上以空间x轴为0度的角度坐标系: 绝对角度&海龟角度
- RGB色彩体系,整数值&小数值,色彩模式切换
turtle 程序语法元素分析
单元开篇
.mp4%22%2C%22size%22%3A7243417%2C%22taskId%22%3A%22ua5241cf5-7409-4d28-9a75-8575a3aa4c6%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188980470-5f1f2dda-6477-4abd-ad3e-82524803881c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22oAdY8%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#oAdY8)
库引用与 import
.mp4%22%2C%22size%22%3A74113653%2C%22taskId%22%3A%22ue84ab28d-c9ea-45c6-8c22-642b3f7ac41%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188980472-47de1d0c-012e-4244-a6ac-411291de22ab.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22eUy9j%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#eUy9j)
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()
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()
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()
turtle 画笔控制函数
.mp4%22%2C%22size%22%3A65543373%2C%22taskId%22%3A%22u7e50b11a-b0e8-4071-9548-6194ae762a3%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188980484-b50addaa-6154-488a-8968-0b277cf5bd2c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22zXuYH%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#zXuYH)
penup()
、pu()
pendown()
、pd()
pensize(width)
、penwidth(width)
pencolor(colorstring)
、pencolor(r, g, b)
、pencolor((r, g, b))
turtle 运动控制函数
.mp4%22%2C%22size%22%3A50473740%2C%22taskId%22%3A%22udff88736-bf91-4e62-9faf-fa98a537bfc%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188980481-a03255e9-7a3d-41fd-9687-305192079c88.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22ymKBQ%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#ymKBQ)
forward(d)
、fd(d)
circle(r, extent = Node)
turtle 方向控制函数
.mp4%22%2C%22size%22%3A47067823%2C%22taskId%22%3A%22u77a33e27-5363-47dd-b953-4580b989853%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688188980488-842d99c3-77e8-4046-ba2c-332e6815265d.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22IrIvv%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#IrIvv)
setheading(angle)
、seth(angle)
left(angle)
right(angle)
循环语句与 range() 函数
%E5%87%BD%E6%95%B0(1).mp4%22%2C%22size%22%3A67580805%2C%22taskId%22%3A%22ue70f63bc-99d5-4746-83da-d50d28af9b5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189059755-cd257ed3-7adc-4d39-8361-844810347a7d.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22LMVo2%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#LMVo2)
for i in range(5):
print(i)
"""
0
1
2
3
4
"""
for i in range(5):
print("Hello:", i)
"""
Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4
"""
for i in range(2, 5):
print(i)
"""
2
3
4
"""
“Python蟒蛇绘制”代码分析
.mp4%22%2C%22size%22%3A33213556%2C%22taskId%22%3A%22uf7cf114c-2c88-4dfd-8813-0f6f73edfb3%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189113294-4345cad6-f84c-49f8-8333-84be51cd828c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22Y7v4c%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#Y7v4c)
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()
"""
除了最后一行 done 课件中没有介绍,其余的都有,下面是对 done 的一些解释说明:
turtle.done()
如果有这一行,那么绘图结束后,窗口不会自动关闭,需要用户手动关闭
如果没有写 turtle.done(),那么最终绘图结束后,窗体会自动关闭
"""
单元小结
.mp4%22%2C%22size%22%3A11539061%2C%22taskId%22%3A%22u30c959a5-002a-45db-8818-8a5b3a48dc5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688189114121-13b643cd-781c-4067-9ebe-6f63b68b6a8f.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22GFcZ6%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#GFcZ6)
- 库引用: import、from…import、import…as…
- penup()、pendown()、pensize()、pencolor()
- fd()、circle()、seth()
- 循环语句:for和in、range()函数
练习自测
练习与作业
.mp4%22%2C%22size%22%3A7382569%2C%22taskId%22%3A%22u2ca91027-4485-4621-91f0-b7c6351d7f1%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688199957738-d5e0e033-c9f9-43fc-92fa-129dbc30b5cc.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22EFAQI%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#EFAQI)
单选题
实例2: 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()
实例2全代码,请注意:这里面的数值经过适应输出的调整。
turtle 正方形绘制
import turtle as t
t.pensize(2)
for i in range(4):
t.fd(150)
t.left(90)
turtle 六边形绘制
import turtle as t
t.pensize(2)
for i in range(6):
t.fd(150)
t.left(60)
t.done()
fd(x)
函数的参数可以任意设置,决定了六边形的大小。
turtle 叠边形绘制
import turtle as t
t.pensize(2)
for i in range(9):
t.fd(150)
t.left(80) # 720/9
t.done()
一共9条边,共2圈,每次左转角度为80度(720/9)。
turtle 风轮绘制
import turtle as t
t.pensize(2)
for i in range(4):
t.seth(90*i)
t.fd(150)
t.right(90)
t.circle(-150, 45)
t.goto(0,0)
t.done()
请逐行理解代码。
补充
超级语言是什么鬼???
知乎问题
python是目前唯一的超级语言这种说法对吗?为什么? - 知乎
ChatGPT 问题描述
- 机器语言;
- 汇编语言;
- 高级语言;
- 超级语言;
我直到计算机中有机器语言、汇编语言、高级语言。但不理解计算机中的超级语言是什么,能解释一下嘛?
在计算机科学中,我们通常会谈到机器语言,汇编语言,和高级语言。这些都是编程语言的类型,各自具有不同的特点和用途。
- 机器语言:这是最低级的编程语言,直接由二进制代码组成,可以被计算机硬件直接执行,但对人来说非常难以理解和编写。
- 汇编语言:汇编语言是低级别的编程语言,但比机器语言更易于理解。它使用简短的符号代码(如 ADD,MOV 等)代替二进制代码,这些代码是和硬件架构相关的。
- 高级语言:高级语言更接近人类语言,它们更易于理解和编写,同时也是平台独立的。高级语言需要通过编译器或解释器转换成机器语言,计算机才能执行。Python,Java,C,C++,JavaScript等都是高级语言。
至于你提到的”超级语言”,在我知识库最新的更新(2021年9月)中,并没有这样的专业术语。如果你是指的某个具体的编程语言,可能需要更具体的上下文信息才能提供准确的解释。如果你是指的比高级语言更易用,更高级的编程语言,这可能指的是那些抽象级别更高,可以让程序员更容易编写复杂程序的编程语言,比如Python,JavaScript等,这些语言常常被用在数据分析,Web开发,人工智能等领域。
谈谈自己的理解
在学习编程的过程中,确实是第一次听到超级语言,在我的认知中,一直都是 3 类:
- 机器语言
- 汇编语言
- 高级语言
如果按照课程中的定义,超级语言是“粘性整合已有程序,具备庞大计算生态”的语言,那么 Python 应该是满足这个描述,所以才会这么归类的。
其实对于编程语言级别的理解,主要是抽象级别的高低。与其说 Python 是唯一的超级语言,不如说“Python 是目前抽象级别最高的语言。”
不过有一说一哈,根据 TIOBE 这个站点的统计数据表示,Python 确实是目前流行程度排名第一的语言。
Python 中的 turtle 库简介ChatGPT
Python的turtle库是一个很有趣的图形库,它允许用户通过编程控制一个虚拟的”乌龟”在屏幕上移动。乌龟可以在移动的同时留下一条线,因此 turtle 库通常被用于创建图形和设计图案。这个库的目的是让初学者更轻松地了解编程的概念和逻辑。
以下是一些 turtle 库的主要特性:
- 简单易用:turtle库是为了教学设计的,因此它非常易于使用。它提供了大量的命令,如forward()、backward()、right()、left()等,可以让乌龟在屏幕上移动。
- 交互式编程:你可以在Python的交互式环境中实时地运行turtle代码,看到乌龟在屏幕上的移动。
- 创建复杂的图形和图案:通过简单的命令和循环,你可以创建出复杂的图形和图案。
- 支持颜色和填充:你可以更改乌龟的颜色,以及它留下的线的颜色。你还可以使用begin_fill()和end_fill()命令来填充图形。
- 支持多个乌龟:你可以创建多个乌龟,让它们在屏幕上同时移动。
下面是一个简单的 turtle 库的例子,这个程序会让乌龟画出一个正方形:
import turtle
# 创建一个乌龟
t = turtle.Turtle()
# 让乌龟画出一个正方形
for i in range(4):
t.forward(100) # 向前移动100个单位
t.right(90) # 右转90度
turtle.done() # 完成
总的来说,turtle库是一个非常适合初学者学习编程的库,尤其是对于学习循环,条件语句和函数等编程概念非常有帮助。
理解“模块”
标准库
标准库是指随着编程语言的发行版一起发布并默认安装的库或者模块。也就是说,如果你安装了这门语言的运行环境,那么你就可以直接使用这个标准库,而无需再额外安装。标准库中包含的功能通常是非常基础和常用的,可以满足大部分日常编程需求。
如果说一个库是一门语言的标准库,这意味着这个库是这门语言的一部分,是由这门语言的维护者维护和发布的,保证了在这门语言的任何一个标准环境中,这个库都是可用的。
Python 拥有一个非常丰富的标准库,涵盖了从文件操作、操作系统接口、网络通信,到文本处理、数据库接口、图形系统等多个领域。标准库的存在使得Python变得非常强大和灵活,因为你可以直接使用这些库来完成许多复杂的任务,而无需自己从零开始编写代码。
turtle 库是 Python 的标准库之一。也就是说,只要你安装了 Python,你就可以直接导入并使用 turtle 库,无需再进行额外的安装。
第三方库
第三方库是由社区成员,而非编程语言的核心开发团队,开发和维护的库。第三方库通常不会随着编程语言的安装包一起发布,需要用户自己额外安装。Python 的第三方库举例包括:numpy(用于数值计算),pandas(用于数据分析),requests(用于网络请求)等。
第三方库和标准库的差异
主要的差异在于来源和安装方式。
- 标准库是编程语言的核心开发团队维护的,随着编程语言的安装包一起发布和安装,所以每一个安装了该编程语言的环境都可以直接使用标准库
- 第三方库则是由社区成员开发和维护的,通常需要用户单独安装
库、包、模块的区别
- 模块(Module):模块是Python代码的基本组织单位,每一个Python文件(.py文件)都可以被视为一个模块。模块可以包含函数、类和变量等。
- 包(Package):包是用于组织相关模块的方式。一个包可以包含一个或多个模块。包本质上就是一个目录,该目录下包含一个特殊的
__init__.py
文件和其他模块文件。 - 库(Library):库是一种更宽泛的概念,它可以包含一个或多个模块或者包,提供一组功能。这些功能可以用于处理文本、图形、文件和文件夹、网络通信等任务。Python中的库可以是标准库,也可以是第三方库。
对于库、包和模块的区别,对于初学者来说,不必过于纠结,因为在实际使用中,我们关心的主要是它们所提供的功能,而不是它们之间的分类。但是理解这些概念有助于更好地理解Python的代码组织结构,有助于在编写更大规模的程序时进行更好的组织和管理。
理解“生态”在编程语言中的含义
编程语言的生态通常不仅包括标准库和第三方库,还包括编程语言的语法、编程模式、开发者社区、开发工具、文档和教程等。
但如果仅从库的角度来看,可以说一个语言的生态是由标准库和第三方库共同构成的。