函数可以使我们能够组织重用的代码,通过一个简短的名称或命令在程序中引用这段代码。
我们之前使用过很多函数,比如print()、input()还有turtle.forward(),不过这些都是Python中的内建的函数或者是从模块导入的函数。如何定义一个函数
def 函数名():
函数体
首先我们要给定义的函数起一个易于理解的名字,即函数名,这样我们很容易明白这段代码是做什么的。
使用关键字def加上函数名字,圆括号(),最后要有冒号(:),这个叫做函数的声明,告诉计算机想要这个函数做什么事情。具体需要做的事情就是函数体内容,函数需要执行的代码块。
注意:函数需要执行的代码块需要缩进4个空格
import turtle as t
t.bgcolor('black')
def draw_star(): # 定义绘制星星的函数
t.pencolor('blue')
t.width(2)
t.penup()
t.setpos(100,100)
t.pendown()
for x in range(4):
t.circle(90,-90)
t.right(180)
def draw_flower(): # 定义绘制花瓣的函数
t.pencolor('red')
t.width(2)
t.penup()
t.goto(-200,-200)
t.pd()
for x in range(4):
t.circle(100,180)
t.lt(90)
# 调用函数名称,绘制图形
draw_star()
draw_flower()
定义两个函数:
def draw_star(): # 定义绘制星星的函数
def draw_flower(): # 定义绘制花瓣的函数
缩进的内容是函数需要完成的功能,分别为是在海龟屏幕位置(100,100)绘制星星,在海龟屏幕位置(-200,-200)绘制花瓣。调用函数
函数定义只是告诉计算机当我们需要调用函数的时候,知道是要做什么?
调用函数:函数名(参数 *)
这里我们定义的函数还没有使用参数,所以直接函数名()就可以执行了
# 调用函数名称,绘制图形
draw_star()
draw_flower()参数——传给函数
def 函数名(参数 *):
函数体
创建函数的时候,我们可以在圆括号里面为函数定义参数(实参),给函数发送信息,在函数内部就可以使用这个值。
print("Hello Python!")
turtle.right(90)
这里我们将"Hello Python!"这个字符串作为实参传递给print()函数,这样就可以将传入的字符串参数打印到屏幕上,选择角度90作为实参传递给right()函数,这个传入的值就可以控制海龟向右旋转90度。在随机位置绘制安卓机器人
我们首先用Visio设计出我们的安卓机器人,用坐标确定好位置。
import turtle as t
import random
t.bgcolor('black') # 背景颜色
t.pencolor('green') # 背景颜色
##t.speed('fast')
def draw_robot(x,y):
# 绘制头
t.pu()
t.setpos(x,y)
t.pd()
t.seth(90) # 朝向90度方向
t.width(1) # 设置画笔粗细
t.fillcolor('green') # 填充颜色
t.begin_fill()
t.circle(60,180)
t.seth(0) # 朝向0度方向
t.fd(120)
t.end_fill()
# 绘制眼睛
t.pu()
t.goto(x-90,y+20)
t.pd()
t.width(1)
t.fillcolor('white')
t.begin_fill()
t.circle(10)
t.end_fill()
t.pu()
t.goto(x-30,y+20)
t.pd()
t.fillcolor('white')
t.begin_fill()
t.circle(10)
t.end_fill()
# 绘制触角
t.pu()
t.goto(x-90,y+50)
t.pd()
t.seth(135) # 朝向135度方向
t.width(5)
t.fd(50)
t.pu()
t.goto(x-30,y+50)
t.pd()
t.seth(45) # 朝向45度方向
t.width(5)
t.fd(50)
# 绘制身体
t.pu()
t.setpos(x,y-10)
t.pd()
t.seth(180) # 朝向180度方向
t.fillcolor('green')
t.begin_fill()
for m in range(4):
t.fd(120)
t.lt(90)
t.end_fill()
# 绘制手臂
t.pu()
t.goto(x+20,y-20)
t.pd()
t.width(20) # 设置画笔粗细
t.seth(270) # 朝向270度方向
t.fd(100)
t.pu()
t.setpos(x-140,y-20)
t.pd()
t.fd(100)
# 绘制腿
t.pu()
t.goto(x-30,y-130)
t.pd()
t.fd(40)
t.pu()
t.goto(x-90,y-130)
t.pd()
t.fd(40)
# 获取海龟屏幕上随机位置(x,y)
x = random.randrange(-t.window_width()//2,
t.window_width()//2)
y = random.randrange(-t.window_height()//2,
t.window_height()//2)
##调用函数,并将随机位置点坐标(x,y)作为参数传递
draw_robot(x,y)调用带有参数的函数
# 获取海龟屏幕上随机位置(x,y)
x = random.randrange(-t.window_width()//2,
t.window_width()//2)
y = random.randrange(-t.window_height()//2,
t.window_height()//2)
##调用函数,并将随机位置点坐标(x,y)作为参数传递
draw_robot(x,y)实现在鼠标点击的位置,绘制机器人
##回调函数,只要函数名就可以
t.onscreenclick(draw_robot)带有返回值的函数
我们可以使用参数把信息发送给一个函数,当然我们也可以接收来自函数返回的信息。
return关键字:
return关键字,构建一条return语句,return后面的值将会作为函数的返回值,传回程序
代码:
def add(num1,num2):
return num1 + num2 # 返回两个数相加的结果
result = add(3,5) # 将函数返回的结果赋值给变量
print("两个数相加的结果为:")
print(result)
定义了add(num1,num2)函数,此函数有两个参数,函数执行的功能是计算两个参数相加的结果。
将计算结果,使用return返回,最后在外面定义一个变量result来接收函数返回的结果。
两个数相加的结果为:
8
>>>
尝试定义一个属于自己的函数吧!
更多内容可以关注微信公众号【陪孩子一起学编程】