09 函数

函数
函数:将具有独立功能的代码块组织为一个整体
使用函数有两步:
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

 

上一篇:day54 线程队列,协程基础


下一篇:python中类的继承