1、什么是函数
函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
2、函数的定义
def fun_name([参数列表]):
# 函数体 由一行或者多行代码组成
# [return 返回值]
3、函数的调用
fun_name(实参列表)
4、函数的分类
有无参数
有参函数
无参函数
def show_info(name, info):
print("这个人叫{}".format(name,info))
#调用函数
show_info("张三")
有无返回值
有返回值
无返回值
def add(x,y):
res = x + y
return res
x = float(input("请输入第一个数:"))
y = float(input("请输入第二个数:"))
res = add(x, y)
print("{} + {} = {}".format(x, y, res))
定义者
系统函数
自定义
第三方定义
5、全局变量
msg = "今天天气非常好"
index = 10
def show():
a = 10
print("这个是函数开始的代码")
print(msg)
global index
index += 1
print(index)
print("函数结束了……")
show()
6、局部变量
7、函数调用的过程
函数的调用会为函数局部变量生产一个新的符号表。确切说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最 后是内置名字表。因此,局部变量不能在函数中直接赋值**(除非用global)**,尽管他们可以被引用。
函数引用的实参在函数被调用的时候引入局部符号表,因此实参总是传值调用(该值通常指的是对象的引用,而不是该对象的值),一个函数被另一个函数调用的时候,一个新的局部符号表在调用过程中被创建。python的函数是以传址的方式工作,当调用一个函数的时候,改变指针指向。
8、匿名函数(lambda)
在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数。
lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。语法:lambda 参数:表达式
>>> lambda_a = lambda:100
>>> print(lambda_a())
100
>>>
在python中,lambda虽然简化了代码书写,增加了代码维护成本,代码的可读性下降了。