1.函数概况
为了提高编写的效率及代码的重复使用,把具有独立功能的代码块组成一个小模块,这就是函数。
2.函数创建和调用
定义函数,也就是创建一个函数。定义函数需要用def关键字实现。
定义一个空函数:
def gy(): #定义函数
pass #占位
gy() #调用
调用函数也就是执行函数,函数调用的基本语法格式:函数名([形参值])。
a = 6
b = 9
def sum():
return a + b
sum()
print(sum())
3.变量作用域
1.局部变量,就是在函数内部定义的变量
- 不同的函数,可以定义相同名字的局部变量,但是各用各的不会产生影响
- 局部变量的作用:为了临时保存数据需要在函数中定义变量来进行存储
2.全局变量 - 一个变量既能在一个函数中使用,也能在其他的函数中使用
4.函数参数传递
型参与实参
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
sum(a, b): #形参
return a + b
sum(1, 2)
print(sum(1, 2)) #实参
默认参数
默认值,可以降低调用函数的难度。
def sum(a, b=1): #默认参数b=1
return a + b
sum(1, )
print(sum(1, ))
可变参数 *args
def add(*args): # 可变参数,参数个数可多个
return sum(args)
result = add(1, 2, 3, 4)
print(result)
关键字参数 **kwargs
通过关键字传递参数
参数组合
参数组合是指可以必选参数、 默认参数、 可变参数和关键字参数一起使用。
参数定义的顺序必须是:必选参数、 默认参数、可变参数和关键字参数。
5.匿名函数
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。(省略了用def声明函数的标准步骤)
lamba函数的语法只包含一个语句,如下
lambda [arg1 [,arg2,...argn]]:expression
6.递归函数
一个函数在内部调用自己本身,这个函数就是递归函数。
阶乘代码如下:
def factorial(num):
if num >= 1:
result = num * factorial(num - 1)
else:
result = 1
return result
if __name__ == '__main__':
print("2的阶乘:", factorial(2))
print("3的阶乘:", factorial(3))
print("4的阶乘:", factorial(4))