目录
1.函数的定义及作用
①函数的概念:
函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
②函数的作用:
可以加强代码的复用性,提高程序编写的效率
2.函数的创建及调用
①函数的创建:
在python中,创建函数需要使用def关键字来定义它,后接函数名、参数列表、冒号,从第二行开始是函数体,函数体需要进行缩进,通常是4个英文空格。例如:
'''
def 函数名(参数列表):
函数体
'''
def func():
print('Hello,World!')
②函数名的明明要求:
a.函数名可以由字母、数字和下划线组成,但不能以数字作为开头
b.函数的名字尽量表达出函数的功能
③空函数
当我们创建函数时,如果没有想好怎么写函数体的代码,可以使用pass语句。pass是跳过的意思,它可以起到占位符的作用:
'''
def 函数名(参数列表):
函数体
'''
def func():
pass
④函数的调用
函数定义好了,需要进行调用。如果不调用它,则不会产生任何效果
'''
def 函数名(参数列表):
函数体
'''
def func():
print('Hello,World!')
func()
>>>Hello,World!
2.1.使用一个简单的函数绘制五角星
import turtle
def star():
#绘制五角星
for i in range(5):
turtle.forward(100)
turtle.left(144)
star() #调用函数
turtle.done() #阻止画图弹窗关闭
3.含单个参数的函数
3.1.在python中给函数设置一个参数
在python中,给函数设置参数非常简单,只需要在函数名后面的“()”中添加上参数,然后在函数体中使用参数即可。
python中设置的参数其实就相当于一个变量,然后直接在函数体中调用变量就可以了。
在python中,定义参数时,不用定义参数的数据类型。
设置参数时,参数时没有实际值的,我们称它为形参;当调用的时候,会另外给它传一个实际的参数,这个参数才会在函数体中生效,我们称它为实参。
例如,我们给画五角星的函数设置一个参数:
import turtle
#绘制五角星,传一个五角星边长的参数
def star(x): #在这里的x称为形参
for i in range(5):
turtle.forward(x)
turtle.left(144)
star(50) #在这里x称为实参
turtle.done() #阻止弹窗关闭
3.2.参数的类型
参数的类型可以是:数值、字符串、布尔值、列表、字典、元组,甚至可以是另外一个函数等等
4.使用函数绘制一个太阳花
circle、setheading,都遵循 “ 顺时针 - 负,逆时针 + 正 ” 的原则
setheading是按照x正方向来旋转的
left 逆时针,right 顺时针
import turtle
turtle.speed(0)
#画花的函数
def flower(x,y):
#把画笔下移,从地面开始画花
turtle.penup()
turtle.right(90)
turtle.forward(200)
turtle.pendown()
turtle.right(180)
#花茎
turtle.pensize(8)
turtle.pencolor("green")
turtle.forward(100)
#花叶
#绘制花叶的步骤最好是在纸上画出,才好理解角度
turtle.setheading(45)
turtle.circle(-120,60)
turtle.setheading(225)
turtle.circle(-120,60)
#setheading()用法和left()、right()不同的地方在于:
#setheading每次执行时会自动把方向设置成x正轴方向,再进行旋转
#而left和right是从当前位置来算的
turtle.setheading(135)
turtle.circle(120,60)
turtle.setheading(-45)
turtle.circle(120,60)
#上半截花茎
turtle.setheading(90)
turtle.forward(200)
#画太阳花
turtle.pensize(1)
turtle.pencolor('black')
#填充颜色放在外面,颜色就不会覆盖花边
#如果把填充颜色放在循环里面,颜色就会覆盖边,因为画一个就填充一个正方形
turtle.fillcolor('yellow')
turtle.begin_fill()
for i in range(x):
for j in range(4):
turtle.forward(y)
turtle.left(90)
turtle.left(360/x)
turtle.end_fill()
flower(20,35)
turtle.penup()
turtle.goto(-250,0)
turtle.pendown()
#由于画笔移动过去之后朝向是向上的
turtle.right(90)
flower(20,50)
turtle.done()