一步一步学Python3(小学生也适用) 第二十四篇:函数return和lambda

前几篇在讲函数的参数时,我们有些函数代码是有返回值,即通过return 返回值,有些是没有返回值。

一、函数返回值 return
def test_num(a, b):
     sum_num = a + b
     return sum_num

num1 = test_num(2, 3)
print(num1)

运行结果为:

5

上面的例子是传入两个实参2和3,分配(赋值)给形参a和b,然后函数计算 a+b结果,赋值给sum_num,然后通过return 返回sum_num值,使函数调用时, sum1获得这个返回值。

一个返回值是用 num1一个变量来赋值(num1=test_num(2,3))

我们改进一下代码,通过函数返回两个值。

def test_num(a, b):
     sum_num = a + b
     minus_num = b - a
     return sum_num , minus_num

num1,num2 = test_num(2, 3)
print('返回的num1值是:',num1)
print('返回的num2值是:',num2)

运行结果:

返回的sum1值是: 5
返回的sum2值是: 1

由上述代码可以看出,返回两个或多个值时,只需要用相应个数的变量来接收返回值即可,它们是按位置一 一对应的。

我们再来改一下代码,返回三个值

def test_num(a, b):
     sum_num = a + b
     minus_num = b - a
     nums = b*a
     return sum_num , minus_num , nums

num1,num2,num3= test_num(2, 3)
print('返回的num1值是:',num1)
print('返回的num2值是:',num2)
print('返回的num3值是:', num3)

运行结果:

返回的num1值是: 5
返回的num2值是: 1
返回的num3值是: 6

我们调用函数时,如果返回三个值,只用两个变量接受,会出现什么情况呢?

def test_num(a, b):
     sum_num = a + b
     minus_num = b - a
     nums = b*a
     return sum_num , minus_num , nums

num1,num2= test_num(2, 3)

运行错误:

    num1,num2= test_num(2, 3)
ValueError: too many values to unpack (expected 2)

返回值解包错误。

二、匿名函数 lambda表达式

Python为我们提供了一个简单的定义函数的方法,用lambda表达式(匿名函数)来表示内部公包含1行表达式的函数。如果一个函数的函数体仅有1行表达式,则该函数就可以用lambda表达式来代替。

lambda语法:

  • 冒号前是参数,可以有多个,用逗号隔开
  • 冒号右边的是表达式及返回值
  • 如果没有参数,则lambda冒号前面就没有。
lambda 参数:操作(参数)
lambda arg1,arg2,arg3...argN :expression
add = lambda x,y:x+y
print(add(3,5))

运行结果

8

这个lambda 表达式是不是跟我们下面的函数功能一样的

def add(x,y):
    sum = x +y
    return sum
print(add(3,5))

是的,lambda表达式就是使一行代码来替换def 定义的函数,所使用的三行代码。

lambda表达式,我们这里了解一下,不作详细解说

结束语

这篇内容我们讲了函数的返回值return和lambda表达式(匿名函数)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值