什么是函数?
函数是一个过程、功能、动作,实现某个功能或者某些功能指令的集合。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
函数的定义
def(define function)
语法结构:
def 函数名称( [ 参数列表 ] ) :
# 缩进 函数体
#[ return 返回值 ]
例子:实现去绝对值的函数
#定义一个取绝对值的函数
def my_abs(x):
if x >= 0:
return x
else:
return -x
print(my_abs(-99))
检查参数:
1 、如果参数的个数不对的时候,系统会自动判别错误的类型
返回多个值的时候实际上是一个元组 。
#代码1
import math
def move(x,y,step,angle=0):
nx = x + step*math.cos(angle)
ny = y - step*math.sin(angle)
return nx,ny
x,y = move(7,7,7,math.pi/6)
print(x,y)
代码2
import math
def move(x,y,step,angle=0):
nx = x + step*math.cos(angle)
ny = y - step*math.sin(angle)
return nx,ny
r = move(7,7,7,math.pi/6)
print(r)
小结:
1 、函数的定义,如果有必要的话可以检查一下参数的类型
2 、如果函数有返回值,使用 return 进行返回值操作
3 、 pass 关键字 ----- 相当于一个占位符
4 、函数可以返回多个值(实则返回的元组)
函数的调用
函数名称( [ 参数 ] )
函数名称实则是指向一个函数的引用,也就是说将函数赋值给一个变量,相当于给函数起了一个别
名
函数的分类
1 、有无参数
有参函数和无参函数
2 、有无返回值
有返回值函数和无返回值函数
3 、根据定义者角色
系统自定义(内置函数)
第三方 ( 公司、个人、组织 ) 自定义的
全局变量和局部变量
全局变量 ------- 定义在 .py 文件的变量
局部变量
局部变量 ------ 定义函数内的变量叫做局部变量,在函数外是不能访问局部变量
在函数内是可以访问全局变量
全局变量不能直接在函数内部进行操作,如果需要在函数内部操作全局变量,需要调用 global 关键
字 ( 但是不建议在函数里面操作全局变量 )
为什么函数内部不可以操作全局变量?
值传递和引用传递
值传递
def add(x,y):
return x+y
x = float(input("请输入第一个数:"))
y = float(input("请输入第二个数:"))
print(add(x,y))
引用传递
# 引用传递
def info(fn,msg):
fn()
print(msg)
def print_msg():
print("我们自己定义的函数")
# print(print_msg) #内存地址,指的是函数的本身
# print(print_msg())
# 引用传递
info(print_msg,"777777")
#注意:在python中(弱数据类型语言),函数是可以作为参数,传递到另一个函数中。