13-python函数返回值和装包的后续提取数据方法——解包

1.1 参数解包

不定长参数简单来讲就是装包,把多个参数装到一个元组或者装到字典中,就叫做装包

Ctrl+d可以快速向下复制

传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递

注意:序列中元素的个数必须和我们函数中的形参个数一致

def fn(a,b,c):
    print("a=",a)
    print("b=",b)
    print("c=",c)

t = (1,2,3)
fn(*t)
fn(*[1,2,3])  # 列表也是可以的
d = {"a":10,"b":20,"c":30}  # 字典的key的名字要和形参的名字对上
fn(**d)

*args**kwargs是可以同时使用的

注意:同时使用这两个的时候,*args必须要写在**kwargs前面,这是规定

def fn(a,b,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)

fn(1,2,4,3,4,5,1,5,k=1,w=2,aa=3,rr=4)

1
2
(4, 3, 4, 5, 1, 5)
{'k': 1, 'w': 2, 'aa': 3, 'rr': 4}
总结:
1.*args适用于接收多余的未命名的位置参数
**kwagrs用于接收关键字参数,其中args是一个元组类型,而kwargs是一个字典类型的数据
2.*args是把元组中的数据进行拆包,也就是把元组中的数据拆成单个的数据
**kwargs是把字典中的数据进行拆包,也就是把字典中的数据拆成单个的键值对

1.2 函数的返回值

我们需要函数将处理的结果反馈回来

返回值:函数执行以后返回的结果

f(x) = 2x+1
x = 1 ——》3 f(1)=3
x = 2 ——》5 f(2)=5
x = 3 ——》7 f(3)=7

获取返回值的方法是:把函数调用当做一个值来输出

def fn():
    return 1
x = fn()
print(x)
# 或者
print(fn())

return后面是什么,函数返回结果就是什么

无论定义的是返回什么类型,return只能返回单值,但是值可以有多个元素

# 看似返回很多个值,其实会被python隐式的分装成一个元组返回出来
def fn():
    return 1,2,3
x = fn()
print(x)
# 或者
print(fn())

函数的嵌套

def fn():
    def fn2():
        print("hello")
    print("f")
fn()
# 返回值也可以是返回函数
def fn():
    def fn2():
        print("hello")
    return fn2
r = fn()
r()

返回值可以是任意类型也包括函数

def fn2():
    pass
print(fn2())  # None代表空值

注意:None千万不可以理解为0,如果我们不给一个函数return,那么这个函数的返回值就是空的
None也是有属于自己的数据类型
print(type(None))  #<class 'NoneType'>  

对于没有定义return语句的函数,python都会在末尾默认加上return None,表示这个函数默认返回空值,也就是说只要你的函数不带return就是得返回None

# return后面不跟值那么结果也是None
def fn():
    return
print(fn())  #None
总结:
如果仅仅写一个return或者不写return,就等价于return None
None是python一个特别的空值,用来代表空的
def fn():
    print("抄一遍")
    print("抄二遍")
    print("抄三遍")
    return
    print("抄四遍")

fn()

抄一遍
抄二遍
抄三遍

在函数中return代表函数执行结束,后面的代码就不会再执行,这就是return
def fn():
    for i in range(1,101):
        if i ==66:
            print("老师心痛了,提前结束")
            break
        print(f"抄{i}遍")
fn()

break:退出当前循环
continue:跳过本次循环
return:用来结束函数
# 函数时用来完成某种功能的,有些功能是需要返回结果
def sum1(*args):
    result = 0
    for i in args:
        result+=i
    return result
r = sum1(1,2,3,4)
print(r+10)

a = len("123")
print(a)
fn和fn()的区别:
print(fn)  # 其实就是在打印函数对象,也就是内存地址
print(fn()) # 其实就是在打印fn()的返回值
总结:
return语句的作用:
结束函数调用、返回值
函数体中return语句有指定返回值时返回的就是其值
函数体中没有return语句时,函数运行结束会隐含返回一个None作为返回值,类型时NoneType,与returnreturn None等效,都是返回None


printreturn的区别:
print仅仅是打印在控制台,而return则是将return后面的部分作为返回值,作为函数的输出,可以赋值给一个变量,继续使用该返回值做其他事

return语句在同一函数中可以出现多次,但是只要有一个得到执行,就会直接结束函数的执行

None(空值)和False不同,他不表示.,也不表示空字符串,而是表示没有值,也就是空值
None的数据类型是NoneType
None是NoneType数据类型的唯一值
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JC03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值