【Python学习】3-1函数&lambda表达式

①简单示例

a = 10
b = 7

def max(x, y):
    if x > y:
        return x
    else:
        return y

print(max(a, b))

输出结果:10

②可变对象与不可变对象

# 不可变对象
a = 10
def chang_x(x):
    x += 1

print(a)

# 可变对象
arr_b = [0,1,2,3]

def add(arr):
    arr.append(4)

add(arr_b)
print(arr_b)

输出结果:

10
[0, 1, 2, 3, 4] 

解释

# 在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
# 所以,我们在函数中改变了number、str等对象的值,实际上是创建了一个新的对象;
# 而对list等进行操作,实际上是改变了它们本身。

③关键字参数

使用关键字来传递参数时,可以不按照顺序进行传参。
def card(num, type):
    print("我的第" + str(num) + "张卡牌是" + type + "。")

card(1, "红桃A")
card(type = "黑梅6", num = 2)

输出结果:

我的第1张卡牌是红桃A。
我的第2张卡牌是黑梅6。 

④默认参数

# 我们可以在函数声明的时候设置默认参数。这样,当我们使用函数时,若没有传递对应参数,则会使用默认值。
# 默认参数必须放到最后,不然会报错。
def card_2(type, num = 1):
    print("我的第" + str(num) + "张卡牌是" + type + "。")

card_2("黑桃2", 5)
card_2("黑桃3")
# 当然在实际写代码的时候,不会这么写,
# 至少也要写成 card_2(type = "黑桃3"),使代码便于人类阅读

输出结果:

我的第5张卡牌是黑桃2。
我的第1张卡牌是黑桃3。 

⑤不定长参数

用一个星号表示元组,用两个星号表示字典,来存储不定长的参数;
def var_tuple(*ga):
    print(ga)
    print(*ga)
    for x in ga :
        print(x)

def var_dict(**da):
    print(da)
    # print(**da) 这么写会报错

var_tuple("hello", ", ", "world", "!")
var_dict(a=1, b=2, c=5)

输出结果:

('hello', ', ', 'world', '!')
hello ,  world !
hello

world
!
{'a': 1, 'b': 2, 'c': 5} 

⑥ lambda表达式创建匿名函数

示例一:

sum = lambda a, b: a + b
print(sum(3,8))

 示例二:

def myfunc(n):
    return lambda a: a * n

mydoubler = myfunc(2)
mytripler = myfunc(3)

print(mydoubler(11))
print(mytripler(11))

输出结果:

22

33 

示例二的解释

myfunc(n)函数返回了一个以a为返回值的lambda表达式。

文心一言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值