首页 > 编程语言 >A027 《满天星》编程 源码

A027 《满天星》编程 源码

时间:2024-02-04 20:01:28浏览次数:31  
标签:turtle 满天星 函数 range A027 源码 forward def 定义

一、课程介绍

本节课学习函数定义与使用,并借此绘制出漫天星光。

A027 《满天星》编程 源码_函数定义

二、重难点解析

A027 《满天星》编程 源码_函数调用_02函数的定义和调用

对函数的理解:

把实现某种功能的多行代码包装成一个函数,并取好函数名。后面可以通过调用这个函数实现相应的功能,从而实现简化代码的效果、复用的作用。

我们平常使用的方法如 forward() 等都是函数。

函数的特点:

1、简化代码

2、必须先定义后调用

3、函数调用次数并无限制

函数的定义:

把实现某种功能的代码包装成函数,并取与功能相关的函数名字。

定义格式:

def 函数名():
    #实现某种功能的代码
    xxxxxx
    xxxxxx

注意:def 是定义函数的关键词,必不可少,同时也要留意括号、冒号、缩进。

函数的调用:

完成函数的定义后,直接调用函数来实现相应的功能。

调用方式:函数名加上括号

函数名()

示例:

import turtle

p = turtle.Pen()
p.ht()

#定义画正方形的函数
def square():
    p.begin_fill()
    p.fillcolor('gold')
    for i in range(4):
        p.forward(30)
        p.right(90)
    p.end_fill()

#调用函数
square()

turtle.done()

三、单词卡

star [stɑːr] 星

四、小试牛刀

4.1 源码操作

使用函数定义一个可以绘制正方形的函数,并且调用它绘制出一个红色正方形。

A027 《满天星》编程 源码_函数的理解_03

import turtle
p = turtle.Pen()
p.ht()

# 定义一个可以任意改变正方形内部颜色的函数
def square():
    p.begin_fill()
    for i in range(4):
        p.left(90)
        p.forward(100)
    p.end_fill()

# 调用函数
p.fillcolor("red")
square()
turtle.done()

4.2 源码操作

随机在屏幕上绘制出 30 朵小红花, x 坐标的随机范围为-700~700,y 坐标的随机范围为 -400~400。

A027 《满天星》编程 源码_函数调用_04

提示:

  1. 小红花的边长为 30,宽度为 10,颜色为红色(red)
  2. 小红花边长间的夹角为 72
import turtle
import random
p = turtle.Pen()
p.ht()
turtle.tracer(0)

# 定义一个可以任意改变正方形内部颜色的函数
def flower():
    # 移到随机位置
    x = random.randint(-700, 700)
    y = random.randint(-400, 400)
    p.penup()
    p.goto(x, y)
    p.pendown()
    for i in range(5):
        p.forward(30)
        p.forward(-30)
        p.left(72)

# 调用函数
p.pencolor("red")
p.pensize(10)
for i in range(30):
    flower()
turtle.update()
turtle.done()

五、扩展创作

A027 《满天星》编程 源码_函数特点_05

import turtle
import random

p = turtle.Pen()
turtle.bgpic('sky1.gif')
turtle.tracer(0)
def star():
    x = random.randint(-700,700)
    y = random.randint(-400,400)
    p.penup()
    p.goto(x,y)
    p.pendown()
    for i in range(5):
        p.forward(10)
        p.right(144)

for i in range(60):
    p.pencolor('white')
    star()
    p.pencolor('yellow')
    star()
    p.pencolor('pink')
    star()
turtle.update()
turtle.done()

六、大开脑洞

用函数来画个图形吧!!

A027 《满天星》编程 源码_函数调用_06

import turtle

p = turtle.Pen()
p.ht()
p.pensize(5)
p.pencolor("red")


# 定义正方形
def square():
    p.forward(200)
    p.left(90)
    
# 定义三角形
def triangle():
    p.left(60)
    p.forward(200)
    p.right(120)
    p.forward(200)
    #p.right(120)
    #p.forward(200)



for i in range(4):
    square()


triangle()   
turtle.done()


标签:turtle,满天星,函数,range,A027,源码,forward,def,定义
From: https://blog.51cto.com/u_16173421/9593277

相关文章

  • 大模型推理框架 vLLM 源码解析(一)
    1.QuickStart创建如下代码,命名为run.pyfromvllmimportLLM,SamplingParamsprompts=[ "HaveyoufollowedmarsggboinZhihu?", "你一键三连了吗?"]#输入promptssampling_params=SamplingParams(temperature=0.8,top_k=50)#采样策略llm=LLM(model=&q......
  • 卸载centos源码安装的mysql
    关闭mysql查看安装的mysqlrpm-qa|grep-imysql卸载安装的mysqlrpm-evmysql-community-client-8.0.11-1.el7.x86_64--nodeps--nodeps强制卸载删除mysql相关目录whereismysqlfind/-namemysqlrm-rf目录rm命令文件一旦通过rm命令删除,则无法恢复;删除文件......
  • 解锁教育系统源码的定制奥秘:企业培训平台开发详解
    今天,小编将为大家讲解教育系统源码的奥秘,详细解释企业培训定制开发的关键步骤和技术要点。 一、需求分析与设计阶段设计阶段则包括系统的整体架构设计、数据库设计以及用户界面设计等方面。二、技术选型与开发环境搭建通过使用版本控制系统、集成开发环境(IDE)以及一系列的测试工具,......
  • volatile源码解析【解决可见性(依据happened-befor)有序性(依据内存屏障)】
    @TOC转自极客时间解决内存可见性问题volatile实现原理-源码分析......
  • 开发智能化企业培训平台:教育系统源码的创新方法
    在传统的企业培训模式中,往往面临着效率低下、内容过时以及难以个性化的问题。为了解决这些挑战,采用智能化技术成为了企业培训领域的热门趋势。通过开发智能化企业培训平台,可以提高培训效果、降低成本,并更好地满足员工多样化的学习需求。一、教育系统源码的创新设计1.1智能推荐算法......
  • 【设计模式】原型模式——Android SDK源码中的原型模式
    AndroidSDK源码中很多地方都用到了原型模式IntentIntent是Android四大组件之间的桥梁,Intent和原型模式有关的源码如下:publicclassIntentimplementsParcelable,Cloneable{//……代码省略……/***Copyconstructor.*/publicIntent(In......
  • SAP 批量写入自建表数据 源码
    使用的时候修改对应的参考的表结构即可,针对不同的自建表以及excel数据,修改ALSM_EXCEL_TO_INTERNAL_TABLE的起始行列和结束行列*&---------------------------------------------------------------------**&ReportY_PNJ_DEMO07*&-----------------------------------------......
  • 短视频源码实现流式传输,降低处理大文件时对内存的占用
    短视频源码实现流式传输,降低处理大文件时对内存的占用其实当使用Node.js向短视频源码客户端返回大文件时,我们最好使用流的形式来返回文件流,这样能避免处理大文件时,占用过多的内存。具体实现方式如下所示:constfs=require("fs");constzlib=require("zlib");consthtt......
  • 短视频源码,实现预处理防止客户端频繁请求
    Go语言实现在Go语言中,使用db.Prepare()方法实现预处理:func(db*DB)Prepare(querystring)(*Stmt,error)Prepare执行预处理SQL语句,并返回Stmt结构体指针,进行数据绑定操作。查询操作使用db.Prepare()方法声明预处理SQL,使用stmt.Query()将数据替换占位......
  • [Flink] Flink源码分析 : BoundedOutOfOrdernessTimestampExtractor
    0序言0.1缘起importorg.apache.flink.api.common.functions.MapFunction;importorg.apache.flink.api.java.tuple.Tuple;importorg.apache.flink.api.java.tuple.Tuple3;importorg.apache.flink.configuration.Configuration;importorg.apache.flink.configuration.......