class 6

参数匹配

  • 一般来讲是位置匹配
  • 如下为关键字匹配
def f(x,y,z):
    print(x,y,z)
    
f(y=1,z=2,x=3)
3 1 2
  • 默认值
def f(x, y=2, z=3):
    print(x, y, z)
f(1)
1 2 3
def f(x, y=2, z=3):
    print(x, y, z)
f(1,z=5)
1 2 5
  • 当变量数量不一定时,将其用*转化为元组:
def f(*a):
    return sum(a)/len(a)
res = f(67,89,92)
print(res)
82.66666666666667
  • **转化为字典表
def f(**x):
    print(x)
f(a=1,b=2)
{'a': 1, 'b': 2}

lambda表达式(定义匿名函数):

相当于:def f()=lambda

def f(x,y):
    return x+y
print(f(1,2))
3
f2 = lambda x,y: x+y
print(f2(1,2))
3
def f(x):
    print('write your name:',x)
    
def l(y):
    print('write your english name',y)
    
def l(x):
    print('write your english name',y)  
    
while True:
    x = input('write down your name:')
    if x == 'stop':
        break
    language = input('choose:c or e')
    if language == 'c':
        f(x)
    elif language == 'e':
        l(x)
        
write down your name:>? tom
choose:c or e>? c
write your name: tom
def f(x):
    print('hello:',x)
def l(x):
    print('hey:',x)
a = f
a('lily')
hello: lily
a = l
a('lily')
hey: lily
  • 这个为什么不对
def f(x):
    print(x)
def l(x):
    print(x)
def h(x):
    print(x)
d = {'a': f, 'b': l, 'c': h}
while True:
    x = input('your name is:')
    if x == 'stop':
        break
    language = input('language:a/b/c')
d.get('language',f)(x)
your name is:>? lily
language:a/b/c>? a
your name is:>? lily
def f(x):
    print(x)
def t(bala, x):
    bala(x)
t(f, 'lily')
lily

方法二:

def t(bala, x):
    bala(x)
t(lambda x: print(x), 'lily')
lily

高级工具

map()

方法一:

l = list(range(1,4))
print(l)
[1, 2, 3]
e = []
for x in l:
    e.append(x**2)
    
print(e)
[1, 4, 9]

方法二:

e = [x**2 for x in l]
print(e)
[1, 4, 9]

方法三:

e = list(map(lambda n:n**2,l))
print(e)
[1, 4, 9]

filter()

方法一:

l = list(range(1,4))
print(l)
[1, 2, 3]
def p(x):
    return x%2 == 0
e = list(filter(p,l))
print(e)
[2]

方法二

e = list(filter(lambda n:n%2 == 0,l))
print(e)
[2]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值