今日学习python之lambda+可变参数

lambda匿名函数

案例1:

# def函数写法
def add(a, b):
    return a + b
 
 
print(add(10, 20))
print("-" * 50)
 
 
# lambda函数写法
add_lambda = lambda a, b: a + b
print(add_lambda(10, 20))
 
 

案例2:

# 使用if判断奇偶性
def get_odd_even(x):
    if x % 2 == 0:
        return "偶数"
    else:
        return "奇数"
 
 
print(get_odd_even(10))
 
 
# lambda函数写法
get_odd_even1 = lambda x: "偶数" if x % 2 == 0 else "奇数"
print(get_odd_even1(10))

 def函数与lambda函数的区别:

  1. 1.lambda可以立即传递(无需变量),自行返回结果
  2. 2.lambda在内部只能包含一行代码
  3. 3.lambda是一个为编写简单函数而设计的,而def用来处理更大的任务
  4. 4.lambda可以定义一个匿名函数,而def定义的函数必须有一个名字

融入map(),对序列中每个元素进行操作,获取新的序列

from functools import reduce
 
 
def add(num):
    return num ** 2
 
 
x = map(add, [1, 2, 3, 4, 5])
print(x)
print(list(x))
print("_" * 50)
 
y = map(lambda num: num ** 2, [1, 2, 3, 4, 5])  # map()对序列中的每个元素进行操作,获得新的序列
print(list(y))
 
x = filter(lambda num: num % 2 == 0, [1, 2, 3, 4, 5])  # filter()对序列中的每个元素筛选,获得新的序列
print(list(x))
 
list1 = [1, 2, 3, 4, 5]
list2 = reduce(lambda x, y: x + y, list1)  # reduce()对序列中元素进行累加
print(list2)

 可变参数

在我们不能在定义函数的时候就确定参数的数量和内容,这时候就可以使用可变参数。

基本形式:

some_func(*args, **kwargs)
案例:

def foo(*args):
    print(args)
    
foo()

foo(1, 2)

foo("小逢", "xianning", 19)

输出结果:

()
(1, 2)
('小逢', 'xianning', 19)

从例子中可以看到,“*args”参数获取得到的是一个元组,这也正是它能作为可变参数的原因。

 案例:

def foo(**kwargs):
    print(kwargs)

foo()

foo(name="小逢")

结果:

{}
{'name': '小逢'}

“**kwargs”参数获取得到的是一个字典,所以我们在调用函数时也必须要使用关键字参数的方法来传递参数。

解决最开始的题

# 请在 ___ 划线处,替换成你的代码

# 创建函数,参数为可变数量的参数
def multiply_numbers(*args):
        product = 1
        for num in args:
            product *= num
        return product

# 输入三个整数 
n1 = int(input())
n2 = int(input())
n3 = int(input())

# 调用函数 
result = multiply_numbers(n1,n2,n3)

# 打印结果 
print(result)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值