函数的基本概念
Python第四阶段
什么是函数



洗衣服的过程
函数
什么是函数
函数,就类似于洗衣机,我们只需要使用它实现对应的功能,而我们却是不需要知道里面的功能是如何。
什么是函数
print("hello,world")
使用print函数时并不知道它内部是怎么实现的,只需要使用即可
自定义函数
如果Python提供的内置函数不能够满足我们编程的要求,那么我们也可以来自己创造一个函数
def fuction_name():
pass
当然,作为一个创造者,我们必须要知道函数内部是怎么去实现的
自定义函数
def fuction_name():
pass
- def为函数定义的关键字
- fuction_name为函数名称
- PASS用缩进表示函数体中的代码
绘制正方形函数

绘制正方形函数
import turtle
pen=turtle.Pen()
#定义绘制正方形的函数
def square():
for i in range(4):
pen.forward(100)
pen.left(90)
#调用函数
square()
#移动画笔
pen.penup()
pen.goto(200,0)
pen.pendown()
#调用函数
square()
#绘制完毕
turtle.done()
带参数的函数
带参数的函数
如果我们想要画出长度可变的正方形,应该怎么做?
#定义带参数绘制正方形的函数
def square(length):
for i in range(4):
pen.forward(length)
pen.left(90)
作用
length表示你要绘制的长度,我们称之为叫做参数
带参数的函数
如果我们想要画出长度可变的正方形,应该怎么做?
#定义带参数绘制正方形的函数
def square(length):
for i in range(4):
pen.forward(length)
pen.left(90)
作用
length表示你要绘制的长度,我们称之为叫做参数
带参数的函数
import turtle
pen=turtle.Pen()
#定义带参数绘制正方形的函数
def square(length):
for i in range(4):
pen.forward(length)
pen.left(90)
#调用函数
square(50)
将50作为这个正方形的长度传递到square函数当中,绘制一个边长为50的正方形
带参数的函数
对于参数来说,主要分为 形式参数 和 实际参数,
- 形式参数在定义的时候不占用任何的内存,一般定义函数的时候来进行使用
- 实际参数在使用的时候是占用电脑内存的,在实际应用中一般在调用的时候来进行使用
带参数的函数
#这里的参数被称之为形式参数
def a(x,y):
print(x+y)
#这里的参数被称之为实际参数
a(2,3)
参数类型
参数类型
- 位置实参
- 关键字实参
- 默认值
- 列表与字典值传入
缺省参数
不定长参数
位置实参
在调用函数的时候,必须将每个实参都关联到函数定义中的每一个形参,最简单的关联方式就是基于实参的顺序,按照函数定义的顺序来放置实参的位置
def f(x,y,z):
print(x,y,z)
#x = 3 y = 2 z = 1
f(3,2,1)
关键字实参
如果不记得形参的顺序,但是知道每一个形参的名称,那么可以使用 关键字=值 的方式来进行参数传递,这样就可以不按照参数顺序进行传递
def f(x,y,z):
print(x,y,z)
f(x = 1,y = 2,z = 3)
默认参数(缺省参数)
在定义的函数的时候,也可以使用给形参指定一个默认值,这样当在进行函数调用时,可以不提供这个形参的值,也可以进行函数调用
def Sum(x = 2,y = 3):
print(x + y)
#没有传递任何参数,使用默认值x=2,y = 3
Sum()
#传递x参数,但是没有传递y参数
Sum(2)
#传递y参数
Sum(y = 4)
#两个参数都传递
Sum(4,5)
列表和字典(不定长参数)
如果不确定要传入多少个参数,那么在函数定义时可以使用*号运算符,
*args 表示将传递来的参数整合成一个元组,可以使用元组的方法来进行访问
**args 表示将传递来的参数整合成一个字典,可以使用字典的相关方法
提示
是不确定有多少个参数,而不是传入一个列表
综合练习
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
答案
def isPalin(num):
num = str(num)
if len(num) != 5:
print("length error")
elif num[0] == num[-1] and num[1] == num[-2]:
print("yes")
else:
print("no")
isPalin(int(input("Please input a number:")))
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
答案
def isPalin(num):
num = str(num)
S = 0
for i in num:
S += int(i) ** 3
if S == int(num):
print("yes")
else:
print("no")
isPalin(int(input("Please input a number:")))
绘制一个满天星图
- 五角星的大小不同
- 五角星的位置是随机的
- 五角星的填充颜色是随机的
- 背景颜色为黑色

函数的基本概念
By yang he
函数的基本概念
- 166