函数(那些东西有了一个名字)

这篇具有很好参考价值的文章主要介绍了函数(那些东西有了一个名字)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数是带名字的代码块,用于完成具体的工作。

用函数整合内容

        定义函数random_spiral()

def random_spiral():
    t.pencolor(random.choice(colors))  
    size = random.randint(10,40)        
    x = random.randrange(-turtle.window_width()//2,
                         turtle.window_width()//2)
    y = random.randrange(-turtle.window_height()//2,
                         turtle.window_height()//2)
    t.penup()
    t.setpos(x,y)
    t.pendown()
    for m in range(size):
        t.forward(m*2)
        t.left(91)

        调用函数random_spiral()

在程序中直接输入:函数名(),就是调用函数 

random_spiral()

参数----传给函数

定义一个接收随机坐标并且在该坐标上绘制笑脸的函数,以参数形式接收坐标信息 

        在随机位置微笑

设计一个微笑

函数(那些东西有了一个名字)

绘制脑袋

circle()方法是从底部逆时针绘制圆。

import turtle

t=turtle.Turtle()
t.pencolor("yellow")
t.fillcolor("yellow")
t.begin_fill()
t.circle(50)
t.end_fill()

 绘制眼睛

左眼:

import turtle

t=turtle.Turtle()
t.pencolor("yellow")
t.setpos(-15,60)
t.fillcolor("blue")
t.begin_fill()
t.circle(10)
t.end_fill()

右眼: 

import turtle

t=turtle.Turtle()
t.pencolor("yellow")
t.setpos(15,60)
t.fillcolor("blue")
t.begin_fill()
t.circle(10)
t.end_fill()

绘制嘴巴

import turtle

t=turtle.Turtle()
t.pencolor("yellow")
t.setpos(-25,40)
t.pencolor("black")
t.width(10)
t.goto(-10,20)
t.goto(10,20)
t.goto(25,40)
t.width(1)

 整合----在随机位置绘制微笑

只要把随机坐标x和y加到上述代码中代表坐标的地方,于是绘制随机微笑的函数如下:

def draw_smiley(x,y):      
    t.penup()
    t.setpos(x,y)
    t.pendown()
    # Head
    t.pencolor("yellow")
    t.fillcolor("yellow")
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    # Left eye
    t.setpos(x-15, y+60)
    t.fillcolor("blue")
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Right eye
    t.setpos(x+15, y+60)
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Mouth
    t.setpos(x-25, y+40)
    t.pencolor("black")
    t.width(10)
    t.goto(x-10, y+20)
    t.goto(x+10, y+20)
    t.goto(x+25, y+40)
    t.width(1)

       在屏幕的50个随机位置绘制微笑

#RandomSmileys.py
import random
import turtle
t = turtle.Pen()
t.speed(0)
t.hideturtle()
turtle.bgcolor("black")
def draw_smiley(x,y):      
    t.penup()
    t.setpos(x,y)
    t.pendown()
    # Head
    t.pencolor("yellow")
    t.fillcolor("yellow")
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    # Left eye
    t.setpos(x-15, y+60)
    t.fillcolor("blue")
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Right eye
    t.setpos(x+15, y+60)
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Mouth
    t.setpos(x-25, y+40)
    t.pencolor("black")
    t.width(10)
    t.goto(x-10, y+20)
    t.goto(x+10, y+20)
    t.goto(x+25, y+40)
    t.width(1)
for n in range(50):
    x = random.randrange(-turtle.window_width()//2,
                         turtle.window_width()//2)
    y = random.randrange(-turtle.window_height()//2,
                         turtle.window_height()//2)
    draw_smiley(x,y)

运行结果:

函数(那些东西有了一个名字) 一些笑脸有部分在屏幕之外,通过对随机坐标进一步做些数学运算,保证笑脸在屏幕之内。 

    x = random.randrange(-turtle.window_width()//2+50,
                         turtle.window_width()//2-50)
    y = random.randrange(-turtle.window_height()//2,
                         turtle.window_height()//2-100)

返回----发回统计结果

        从函数返回一个值

def 函数名([参数...]):
    return 某个值

 例如:

#厘米转化为英寸
def convert_cm2in(cms):
    return cms / 2.54
#千克转换为磅,磅(英语:pound)是质量单位,简写为 lb
def convert_kg2lb(kgs):
    return kgs * 2.2

        在程序中使用返回值

""" 
计算用户的身高是乒乓球高度的多少倍和
用户的体重是乒乓球重量的多少倍 
"""

def convert_cm2in(cms):
    """ 厘米转化为英寸"""
    return cms / 2.54

def convert_kg2lb(kgs):
    """ 千克转换为磅,磅(英语:pound)是质量单位,简写为 lb """
    return kgs * 2.2

height_cm = int(input("输入你的身高(cm): "))
weight_kg = int(input("输入你的体重(kg): "))
height_in = convert_cm2in(height_cm)
weight_lb = convert_kg2lb(weight_kg)
#一个正规的乒乓球的高度是40毫米(1.57英寸),重量是2.7克(0.095盎司)
ping_pong_tall1 = round(height_cm / 4)
ping_pong_heavy1 = round(weight_kg * 1000 / 2.7)

ping_pong_tall2 = round(height_in / 1.57)
ping_pong_heavy2 = round(weight_lb * 16 / 0.095) #一磅等于16盎司

feet = height_in // 12
inch = height_in % 12

meter = height_cm // 100
cm = height_cm % 100

print("你的身高:", meter, "米", cm, "厘米, 你的体重:", weight_kg, 
      "公斤。")
print("你的身高:", feet, "英尺", inch, "英寸,你的体重: ", weight_lb, 
      "磅。")
print("你有", ping_pong_tall1, "个乒乓球高, ", ping_pong_heavy1, "个乒乓球重!")
print("你有", ping_pong_tall2, "个乒乓球高, ", ping_pong_heavy2, "个乒乓球重!")

交互简介

事件驱动app:由事件驱动程序的下一步动作。

事件处理程序:也叫事件监听程序,处理事件的程序。

        处理点击事件----TurtleDraw

回调函数:例如:调用函数b(a),a就是回调函数,a是函数名,不带括号,说明a没有被立即调用,程序继续运行,要待会再回过头来调用。

案例:将海龟的位置设置为用户点击的位置

# TurtleDraw.py
import turtle
t = turtle.Turtle()
t.speed(0)
turtle.onscreenclick(t.setpos)

        监听键盘事件----ArrowDraw

# ArrowDraw.py
import turtle
t = turtle.Pen()
t.speed(0)
t.turtlesize(2,2,2)
def up():
    t.forward(50)
def left():
    t.left(90)
def right():
    t.right(90)
turtle.onkeypress(up, "Up")
turtle.onkeypress(left, "Left")
turtle.onkeypress(right, "Right")
turtle.listen() #Set focus on TurtleScreen

        传递点击位置的坐标给回调函数----ClickSpiral

turtle.onscreenclick(回调函数名称):onscreenclick监听器把每次鼠标点击的x和y坐标传递给回调函数。

#ClickSpiral.py
"""在鼠标点击位置绘制螺旋线""" 
import random
import turtle
t = turtle.Pen()
t.speed(0)
turtle.bgcolor("black")
colors = ["red", "yellow", "blue", "green", "orange", "purple", 
          "white", "gray"]
def spiral(x,y):
    t.pencolor(random.choice(colors))  
    size = random.randint(10,40)        
    t.penup()
    t.setpos(x,y)
    t.pendown()
    for m in range(size):
        t.forward(m*2)
        t.left(91)
turtle.onscreenclick(spiral)

        在点击位置绘制笑脸----ClickAndSmile

#ClickAndSmile.py
import random
import turtle
t = turtle.Pen()
t.speed(0)
t.hideturtle()
turtle.bgcolor("black")
def draw_smiley(x,y):
    t.penup()
    t.setpos(x,y)
    t.pendown()
    # Face
    t.pencolor("yellow")
    t.fillcolor("yellow")
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    # Left eye
    t.setpos(x-15, y+60)
    t.fillcolor("blue")
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Right eye
    t.setpos(x+15, y+60)
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Mouth
    t.setpos(x-25, y+40)
    t.pencolor("black")
    t.width(10)
    t.goto(x-10, y+20)
    t.goto(x+10, y+20)
    t.goto(x+25, y+40)
    t.width(1)
turtle.onscreenclick(draw_smiley)

ClickKaleidoscope

让用户在点击位置绘制4条反射的螺旋线。

        draw_kaleido()函数

绘制4条反射的螺旋线

def draw_kaleido(x,y):
    t.pencolor(random.choice(colors))
    size = random.randint(10,40)
    draw_spiral(x,y, size)
    draw_spiral(-x,y, size)   
    draw_spiral(-x,-y, size)
    draw_spiral(x,-y, size)

        draw_spiral()函数

在指定位置绘制正方形螺旋线

def draw_spiral(x,y, size):
    t.penup()
    t.setpos(x,y)
    t.pendown()
    for m in range(size):
        t.forward(m*2)
        t.left(92)

        整合

#ClickKaleidoscope.py
import random
import turtle
t = turtle.Pen()
t.speed(0)
t.hideturtle()
turtle.bgcolor("black")
colors = ["red", "yellow", "blue", "green", "orange", "purple", 
          "white", "gray"]
def draw_kaleido(x,y):
    t.pencolor(random.choice(colors))
    size = random.randint(10,40)
    draw_spiral(x,y, size)
    draw_spiral(-x,y, size)   
    draw_spiral(-x,-y, size)
    draw_spiral(x,-y, size)
def draw_spiral(x,y, size):
    t.penup()
    t.setpos(x,y)
    t.pendown()
    for m in range(size):
        t.forward(m*2)
        t.left(92)
turtle.onscreenclick(draw_kaleido)

效果如下:

函数(那些东西有了一个名字)

本章你应该掌握的能力

  • 将代码组织和分组到函数中
  • 使用def定义函数
  • 调用自己的函数
  • 定义和使用有参的函数
  • 编写有返回值的函数
  • 使用事件处理程序编写简单的交互式APP
  • 能够编写处理点击和按键事件的程序
  • 编写接受参数的事件处理函数

编程挑战

万花筒一样的笑脸文章来源地址https://www.toymoban.com/news/detail-499395.html

#ClickSmileKaleidoscope.py

import random
import turtle
t = turtle.Pen()
t.speed(0)
t.hideturtle()
turtle.bgcolor('black')

def draw_smilex(x,y):
    t.penup()
    t.setpos(x,y-100)
    t.pendown()
    # Face
    t.pencolor('yellow')
    t.fillcolor('yellow')
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    # Left Eye
    t.setpos(x-15, y-80)
    t.fillcolor('blue')
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Right Eye
    t.setpos(x+15, y-80)
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Mouth
    t.penup()
    t.setpos(x-25,y-40)
    t.pendown()
    t.pencolor('black')
    t.width(10)
    t.goto(x-10, y-20)
    t.goto(x+10, y-20)
    t.goto(x+25, y-40)
    t.width(0)

def draw_smiley(x,y):
    t.penup()
    t.setpos(x,y)
    t.pendown()
    # Face
    t.pencolor('yellow')
    t.fillcolor('yellow')
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    # Left Eye
    t.setpos(x-15, y+60)
    t.fillcolor('blue')
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Right Eye
    t.setpos(x+15, y+60)
    t.begin_fill()
    t.circle(10)
    t.end_fill()
    # Mouth
    t.setpos(x-25,y+40)
    t.pencolor('black')
    t.width(10)
    t.goto(x-10, y+20)
    t.goto(x+10, y+20)
    t.goto(x+25, y+40)
    t.width(0)
    
def draw_kaleido(x,y):
    draw_smiley(x,y)
    draw_smiley(-x,y)   
    draw_smilex(-x,-y)
    draw_smilex(x,-y)

turtle.onscreenclick(draw_kaleido)

到了这里,关于函数(那些东西有了一个名字)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php使用chatGPT生成一些东西做一个记录

    好久没写了,这么长时间都去坐一些自己感兴趣的事情去了。 之前使用chatgpt-3,效果一直不咋好,这里我们来说说各个版本区别 gpt-3收费成本可以接受,生成的内容对话有点不太聪明的样子 git-3.5-turbo收费相对来说低,生成文本质量还是蛮高的,虽然有可能存在一点废话,但是

    2024年02月15日
    浏览(47)
  • 发现一个好玩的东西:Markdown 使用 Emoji 表情

    有两种方法可以将表情符号添加到Markdown文件中: 将表情符号复制并粘贴到Markdown格式的文本中 或者键入emoji shortcodes。 在大多数情况下,您可以简单地从Emojipedia等来源复制表情符号并将其粘贴到文档中。许多Markdown应用程序会自动以Markdown格式的文本显示表情符号。从Markd

    2024年02月06日
    浏览(41)
  • 阿里开源了一个新东西,上GitHub热榜了!

    要说今年IT领域最火的技术,还数AIGC。而其中文本处理领域的佼佼者当属OpenAI家的ChatGPT了。 几个月前,这波AI大热开始的时候,面对ChatGPT的优异表现,我就有一个预感,这玩意儿绝对不止拿来做一个聊天问答工具这么简单,它一定还能在很多场景上发挥作用。 我当时就在一

    2024年02月15日
    浏览(38)
  • 怎么做一个微信小程序卖东西【小程序卖货】

    微信小程序是一个非常方便的平台,很多企业商家都会创建一个微信小程序在线商店来卖东西。以下是一些简单的步骤,以帮助你了解怎么做一个微信小程序卖东西。 一、准备好你的商品等信息 首先准备好你的商品等信息,以便展示在你的微信小程序商店里。你需要确定产

    2024年02月08日
    浏览(40)
  • C++面试八股文:C++中,设计一个类要注意哪些东西?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第9面: 面试官:C++中,设计一个类要注意哪些东西? 二师兄:设计一个类主要考虑以下几个方面:1.面向对象的封装、继承及多态。2. big three 或者 big five 。3.运算符和函数重载、静态成员、友元、异常处理等相关问题。 面试官

    2024年02月08日
    浏览(79)
  • 4.15 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗?

    目录 HTTP 的 Keep-Alive TCP 的 Keepalive 总结: HTTP的Keep-Alive,是应用层(用户态)实现的,称为HTTP长连接; TCP的Keepalive,是由TCP层(内核态)实现的,称为TCP保活机制。 HTTP协议采用的是 请求-应答 模式,客户端发起请求,服务端返回响应,一来一回。 Keep-Alive 就是实现了可以使

    2024年02月11日
    浏览(40)
  • MyPerf4J一个高性能、无侵入的Java性能监控和统计工具,有点东西!

    背景 随着所在公司的发展,应用服务的规模不断扩大,原有的垂直应用架构已无法满足产品的发展,几十个工程师在一个项目里并行开发不同的功能,开发效率不断降低。 于是公司开始全面推进服务化进程,把团队内的大部分工程师主要精力全部都集中到服务化中。服务化

    2024年02月15日
    浏览(68)
  • Excel 技巧记录-那些复杂的公式和函数

    **具体需求为:**表A叫Total_202308.xlsx,sheet叫摊销前分析,表B叫data.xlsx,sheet叫总部费用,表A的数据里,A列是科目名称,第9行是部门名称,表B里,A列是科目名称,第2行是部门名称,要以表B的A列和第二行的数据作为,匹配表A的A列和第9行,获取对应的数据。 最后的公式

    2024年02月07日
    浏览(48)
  • 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    【声明】这篇文章可能写的很差,作者技术不够。但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 【首言】exe是电脑上直接点击就可以使用的。当你写了一个.py文件,可以实现你的有趣功能,于是你高兴的把这个发送给你的朋友,但是你的朋友

    2024年02月01日
    浏览(52)
  • E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

      安装包缺少依赖关系时,系统提示 “您也许需要运行 apt --fix-broken install  ” 来修正上面的错误。一般运行这句命令可以顺利完成,但也有失败的案例 sudo apt --fix-broken install 这时候会提示你 是否安装依赖包 Y 如果后面没有报错就安装成功了,运气不好我的有问题    命令

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包