函数 函数:将具有独立功能的代码块组织为一个整体 使用函数有两步: 1.定义函数 在函数中编写代码,实现功能 2.调用函数 执行函数中的功能 函数的优点 : 使用功能非常方便,减少重复的代码,有利于代码升级重构 格式 def 函数名(): #函数名也是标识符 函数调试 def func1(): print('*'*10) print('func1') print('*'*10) func1() 函数参数 将数据传递到函数的内部,可以增加函数的通用性 步骤:1.设置形参:定义函数时设置的参数,给真实数据进行'占位' 2.设置实参:调用函数时设置的参数,要传递到函数内部的真实数据 def func_sum(num1,num2): sum_num = num1 + num2 print('求和的结果为:%s' % sum_num) def func_sub(num1,num2): sub_num = num1 - num2 print('求差的结果为:%s' % sub_num) func_sum(10,20) #>>>>求和的结果为:30 func_sub(10,20) #>>>>求差的结果为:-10 全局变量和局部变量 全局变量:在函数外部定义的变量.作用于整个程序 a = 1 def func1(): print(a) func1() #>>>>1 print(a) #>>>>1 局部变量:在函数内部定义的变量,只在函数内部有用 def func1(): a = 1 print(a) func1(a) #>>>1 print(a) #报错 函数中修改全局变量 a = 3 def func1(): global a a = 10 print(a) func1() #>>>10 print(a) #>>>10 将全局变量改成10 函数返回值 函数返回值:函数的执行结果 什么时候需要设置返回值:函数调用者需要使用函数执行结果进行进一步的处理 def func_sum(num1,num2): sum_num = num1 +num2 return sum_num #返回求和的值 print(123) #函数一旦执行了return,后面的代码不会执行 data = func_sum(1,2) print('*'*data) #>>>*** 函数的嵌套调用 函数嵌套调用,在函数中调用另一个函数 def func1(): print('func1开始') print('func1结束') def func2(): print('func2开始') func1() print('func2结束') func2() #>>>func2开始 func1开始 func1结束 func2结束 参数的详解 实参 argumen 形参 parameter 实参类型:位置实参,关键字实参 位置实参:普通的实参,会按照参数的顺序传递数据给形参,要求实参和形参一一对应 def func1(num1,num2): print(num1) print(num2) func1(1,2) #>>>1 2 关键字参数:可以将数据参数传递给指定的形参 关键字实参必须在位置实参的后边 def func1(num1,num2): print(num1) print(num2) func1(num2=1,num1=2) #>>>2 1 默认形参 :可以给形参设置默认值 如果还类型参设置了实参.则使用实参的值 默认形参必须在普通形参后面 def func1(num1,num2=10): print(num1) print(num2) func1(4) #>>>4 10 可变形参 元组型可变形参:可以接受任意数量的位置实参,将其转换为元组赋值给形参 在形参前加*,就标识该形参为元组型可变性惨 def func1(*args): sum_num = 0 for num in args: sum_num += num print('和为%s' % sum_num) func1(1,2,3,4,) #>>>和为10 字典型可变形参:可以接受任意数量的关键字实参,将其转化为字典赋值给形参 在形参前加**,就标识该形参为字典型可变形参 字典型可变形参必须在参数列表的最后面 def save_userinfo(**kwargs): print('用户信息:%s' % kwargs) save_userinfo(name='zs',age=22)#>>>>用户信息:{'name': 'zs', 'age': 22} save_userinfo(name='ls',age=23,weight=75)#>>>用户信息:{'name': 'ls', 'age': 23, 'weight': 75