首页 > 编程语言 >A004 《天狗食月》编程 源码

A004 《天狗食月》编程 源码

时间:2023-07-01 15:31:47浏览次数:43  
标签:turtle right A004 pencolor range 源码 食月 forward 90


一、课程介绍

本节课将学习 Python 中的 for 循环,并应用画笔后退画圆的知识,最终绘制出月食过程。


二、重难点解析

A004 《天狗食月》编程 源码_《天狗食月》编程 源码for循环

我们在编程时,有些代码和逻辑是重复的,这个时候可以考虑使用 for 循环,减少重复的代码。

A004 《天狗食月》编程 源码_一语_02for循环的基本格式与缩进

基本格式:

for i in range(3):
    语句1
    语句2
    ...

缩进:一般使用 4 个空格(点四下空格键或用“Tab”键即可)。

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_03

示例如下:

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_04

运行结果:

A004 《天狗食月》编程 源码_for循环_05

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_06循环结构顺序结构:

顺序结构:程序按顺序从上往下逐行执行。

如:

A004 《天狗食月》编程 源码_一语_07

循环结构:程序会多次执行循环里的代码。

如:

A004 《天狗食月》编程 源码_一语_08


三、单词卡

for [fɔː(r)] 对于

in [ɪn] 在...内

range [reɪndʒ] 范围

white [waɪt] 白色


四、小试牛刀

4.1 源码操作 I

使用 for 循环来简化画糖葫芦的代码。

A004 《天狗食月》编程 源码_for循环_09

### 代码~ ###

import turtle
p = turtle.Pen()

for i in range(5):
    p.pencolor('wheat')
    p.pensize(8)
    p.forward(50)
    p.dot(50, 'blue')

p.ht()
turtle.done()

4.2 源码操作 II

在程序中添加代码,完成倒城墙的绘制。

A004 《天狗食月》编程 源码_一语_10

import turtle
p = turtle.Pen()
p.pencolor('brown')
p.pensize(5)
p.left(180)
# 绘制城墙的可重复部分
for i in range(20):
    p.forward(10)
    p.right(90)
    p.forward(10)
    p.left(90)
    p.forward(10)
    p.left(90)
    p.forward(10)
    p.right(90)

# 画出接轨部分
p.forward(10)
p.right(90)
p.forward(50)

# 返回,画出剩余的部分
p.right(90)
p.forward(20 * 20 + 10)
p.right(90)
p.forward(50)

p.ht()
turtle.done()

4.3 源码操作 III

制作梯子~

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_11

### 代码~ ###
import turtle
p = turtle.Pen()
\# 左竖杆
p.pencolor('brown')
p.pensize(10)
p.left(90)
p.forward(300)

\# 右竖杆
p.penup()
p.forward(-300)
p.right(90)
p.forward(60)
p.pendown()
p.left(90)
p.forward(300)
p.forward(-300)

\# 绘制横杆
for i in range(9):
•    p.forward(30)
•    p.left(90)
•    p.forward(60)
•    p.forward(-60)
•    p.right(90)

p.ht()
turtle.done()

4.4 源码操作 IIII

编写一个绘制灯泡的程序!

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_12

### 代码~ ###

import turtle
p = turtle.Pen()

# 灯泡
p.pencolor('yellow')
p.dot(180)
p.left(90)
p.forward(100)

# 螺口
p.pencolor('gray')
p.pensize(30)

for i in range(3):
    p.right(90)
    p.forward(30)
    p.backward(60)
    p.forward(30)
    p.left(90)
    p.forward(20)

p.ht()
turtle.done()


五、扩展练习

A004 《天狗食月》编程 源码_for循环_13

## 代码 ##

import turtle
p = turtle.Pen()
p.ht()
p.pencolor("yellow")
p.dot(300)
p.forward(150)
p.pencolor("white")
p.forward(150)
for i in range(200):
    p.forward(-1)
    p.dot(300)

turtle.done()


六、自由发挥

用今天学到的知识做一段虚线吧~

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_14

import turtle
p=turtle.Pen()
p.pensize(5)

for i in range(7):
    p.pencolor('white')
    p.forward(20)
    p.pencolor('green') #颜色可以自定义哦!
    p.forward(20)

p.ht()
turtle.done()

A004 《天狗食月》编程 源码_《天狗食月》编程 源码_15


标签:turtle,right,A004,pencolor,range,源码,食月,forward,90
From: https://blog.51cto.com/u_16173421/6599924

相关文章

  • Sentinel源码分析
    Sentinel的基本概念Sentinel实现限流、隔离、降级、熔断等功能,本质要做的就是两件事情:统计数据:统计某个资源的访问数据(QPS、RT等信息)规则判断:判断限流规则、隔离规则、降级规则、熔断规则是否满足这里的资源就是希望被Sentinel保护的业务,例如项目中定义的controller方法就是......
  • 基于物联网、区块链、RSA加密验证技术实现的防伪溯源系统源码
    一物一码防伪溯源系统能准确获取产品生产经营各个环节的真实信息,利用物联网、云计算、区块链、人工智能、5G等先进技术,结合特有的码码关联和RSA加密验证技术,建立区块链的“身份证”,针对产品种植到销售各环节的质量安全数据进行及时采集上传,数据具有不可逆,不可篡改等特点,实现产品溯......
  • 碰撞测试(附源码)
    这里没有办法展示动态效果,具体动态效果请复制到浏览器并在浏览器控制台上查看具体效果:CSS部分:<style>*{margin:0;padding:0;}div{position:absolute;top:0;left:0;......
  • 猜数字游戏(附源码)
    CSS部分:<style>html{font-family:sans-serif;}body{width:50%;max-width:800px;min-width:480px;margin:0auto;}.lastResult{......
  • 3d烟花效果的实现(附源码)
    这里没有办法展示动态效果,具体动态效果请复制代码去浏览器中查看:CSS部分:<style>html,body{margin:0px;width:100%;height:100%;overflow:hidden;background:#000;}#canvas{width:100%;height:100%;}</style>HTML部分:<body><can......
  • 3d立体相册的实现(附源码)
    效果图(这里没办法显示动态,具体动态自己复制代码去网页看):CSS部分:html{background:#000;height:100%;}/*最外层容器样式*/.wrap{position:relative;position:absolute;top:0;right:0;bottom:0;left:0;width:200px;......
  • 深度理解Iterator底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数:记录添加数据、删除数据的次数(记录元素个数变化的次数) protectedtransientintmodCount=0;//4}这段代码是一个抽象类AbstractList,实现了List接口。下面是对代码......
  • 离线安装ffmpeg源码包【详细教程】
    今天分享一下ffmpeg源码包的安装过程,针对在没有网络环境下,且不能直接使用yum如何成功安装ffmpeg源码包。博主本人通过正式服务器测试,记录整个安装过程。值得大家收藏同时,我会分享一下如何使用ffmpeg对H.264格式视频(MP4)进行m3u8+ts切片的转换,并生成m3u8+ts格式文件ffmpeg所需要环......
  • Debug Golang源码中的单元测试
    goland配置如上,既可以debuggolang源码中的单元测试。......
  • 【源码分析】Mybatis 的配置解析过程
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......