python函数

函数的作用

函数就是将一段有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的要求

函数在开发过程中,可以高效的实现代码重用

函数的使用步骤

先定义,后调用。

定义函数

def 函数名(参数):

        代码1

        代码2

        .........

调用函数

函数名(参数)

注意:不同的需求,参数可有可无。

在python中,函数必须先定义后使用

函数的参数作用

def add_num2(a,b):
    result = a+b
    print(result)

add_num2(10,20)

a,b形参,传入的数据是实参

函数参数的四种写法

位置参数

调用函数时根据函数定义的参数位置来传递参数

def user_info(name,age,gender):
    print(f'您的名字{name},年龄{age}},性别是{gender}')

user_info('Tom','22','男')

注意:传递和定义参数的顺序以及个数必须一致,否则数据无意义

关键字参数

函数调用,通过 键=值 形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求

def user_info(name,age,gender):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('小明',age=20,gender='男')

注意:函数调用时如果有位置参数时,位置参数必须在关键字参数的面前,但关键字参数之间不存在先后顺序。

缺省参数

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)

def user_info(name,age,gender='男'):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('Tom',20)

注意:函数调用时,如果为缺省参数传一个新值则修改默认参数值;否则使用这个默认值

不定长参数

不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)

的场景。此时,用包裹位置参数,或者包裹关键参数,来进行参数传递,会显得非常方便

包裹位置传递

def user_info(*args):
    print(args)

user_info('Tom')
user_info('Tom',18)

 注意:所有传进的参数都会被args变量手机,它会根据传进参数的位置合并一个元组,*argss是元组类型,这就是包裹位置传递

包裹关键字传递

def user_info(**kwargs):
    print(kwargs)


user_info(name='Tom',age=18,id=123)
#{'name':'Tom',age=18,'id':123}

综上:无论是包裹位置传递还是包裹关键字传递,都是一个组包的过程

函数的返回值作用

def buy():
    return '烟'
    goods = buy()
    print(gooods)

注意:做计算时要用到return返回值返回计算后的结果

return的作用:

复制函数返回值

退出当前函数:导致return下方所有代码(函数体内部)不执行

 函数的返回值作为参数传递

def test1():
    return 50
def test2(num):
    print(num)
result = test1()
test2(result)

一个函数要有多个返回值

def return_num():
    return 1,2
result = return_num()
print(result)

注意:

return a,b 写法,返回多个数据的时候,默认是元组类型

return后面可以连接列表、元组或字典,以返回多个值

函数的说明文档

定义函数的说明文档

def 函数名(参数):
    """说明文档的位置"""
    代码
    .....

help(函数名)

查看函数的说明文档

函数嵌套调用

 一个函数里面又调用了另外一个函数

def print_line():
    print('_'*20)

def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1

print_lines(5)
def sum_num(a,b,c):
    return a + b + c

result = sum_num(1,2,3)

def average_num(a,b,c):
    sumResult = sum_num(a,b,c)
    return sumResult / 3

averageResult = average_num(1,2,3)
print(averageResult) 

变量作用域

 变量作用域指的是变量生效的范围,主要分为两类:局部变量和全局变量

局部变量

是定义在函数体内部的变量,即只在函数体内部生效

def testA():
    a = 100
    print(a)
testA() #100
print(a)#报错

 变量a是定义在testA函数内部的变量,在函数外部访问则立即报错

局部变量的作用:在函数体内部,临时保存数据,当函数调用完成时,即销毁局部变量

全局变量

 是在函数体内、外都能生效的变量

a = 100

def testA():
    ...
    ...

修改全局变量可以在函数内直接定义它在函数中的变量

def test1():
    return 50
def test2(num):
    print(num)
result = test1()
test2(result)

拆包和交换变量值

拆包:元组

def return_num():
    return 100,200

num1,num2 = return_num()
print(num1) #100

print(num2)#200

拆包:字典

dict1 = {'name':'Tom','age':18}
a,b = dict1
#对字典进行拆包,取出来的是字典的key
print(a) #name
print(dict1[a])#Tom

交换变量值

假如有变量a = 10 和b = 20,交换两个变量的值

方法一:借助第三变量存储数据

c = 0
c = a
a = b
b = c

方法二

a,b = 1,2
a,b = b,a
print(a) #2
print(b) #1

引用

结论:在python中,值是靠引用来传递来的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值