函数基本使用:
函数的定义:
关键字 :def
确定函数名称、参数名称、参数个数、编写函数体(用于实现函数功能的代码)
def f():print('python')
函数的调用:
-通过函数名称进行调用函数
-定义好函数之后,只表示这个函数封装了一段代码而已
-如果不主动调用函数,函数不会主动执行
def f():print('python')
f()
函数的参数:
-形参:函数定义时小括号里的参数,用来接收参数,在函数内部作为变量使用
-实参: 函数调用时小括号里的参数,用来把数据传送到 函数内部使用。
函数可以没有形参和实参。
def sum_1(a, b): # 形式参数return a + bresult = sum_1(5, 4) # 实际参数
print(result)
函数的参数类型:
-位置参数:要求实参顺序必须和形参顺序完全一样,由形参顺序决定实参顺序
-缺省参数:定义参数时,可以给某一个参数确定一个默认值,具有默认值的参数就叫缺省参数
def power(x, n=2): # n:默认参数,缺省参数return x ** na = power(3)
print(a)
-可变参数:传入的参数个数是可变的
def total(*args): # 可变参数 参数打包成元组result = 0for i in args:result += ireturn resultresult = total(1, 2, 5, 8, 9, 41)
print(result)def f(**kwargs): # 可变参数,接收字典for k, v in kwargs.items():print(k, v)d = {'name:': 'zhang', 'age:': 18, 'gender:': '男'}
f(**d)
变量作用域:
-局部变量:在函数内部定义的函数,只能在函数内部使用
-全局变量:在函数外部定义的变量,在所有函数内部都可以使用
# 全局变量
num1 = 24def f():num2 = 20print('在函数中打印num1的值为', num1)print('num2的值为', num2)f()
print('在函数外打印num1的值为', num1)
# 全局变量
num1 = 24def f():num1 = 10 # 相当于在函数里有新建一个变量num2 = 20print('在函数中打印num1的值为', num1) # 结果为10print('num2的值为', num2)f()
print('在函数外打印num1的值为', num1) # 结果为24
global:在函数里修改全局变量
# 全局变量
num1 = 24 # 不可变数据类型def f():global num1 # 声明在f函数中使用的num1是全局变量num1num1 = 10num2 = 20print('在函数中打印num1的值为', num1) # 结果为10print('num2的值为', num2)f()
print('在函数外打印num1的值为', num1) # 结果为10
可变数据类型(列表,字典):
list1 = [1, 2, 3, 4, 5, 6] # 可变数据类型def f1():list1[2] = 10print('在函数内部list1的值为:', list1) # 结果为list1 = [1,2,10,4,5,6]f1()
print('在函数外部list1的值为:', list1) # 结果为list1 = [1,2,10,4,5,6]
匿名函数(lambda):
fun = lambda x, y: x + y
result = fun(1, 2)
print(result)
内置函数:
递归函数:
递归的过程:
-写出临界条件
-找这一次和上一次的关系
-假设当前函数已经能使用,调用自身计算上一次结果,再求出本次结果,当参数满足一个条件时,函数不再执行
def f(a):if a == 0:return 0elif a == 1:return 1elif a == 2:return 1return f(a - 1) + f(a - 2)print('第%d项的值为%d' % (5, f(5)))