2019-10-10

函数

  • 以def开头,后跟函数名和参数列表,下一行开始可以是字符串(文档字符串),用于说明函数(可选),函数体,且必须缩进
  • 文档字符串
def Nothing():
  """Do Nothing """
  pass

print(Nothing.__doc__)
#输出Do Nothing
  • 函数可以有return语句,从函数内部返回一个值,无return语句或不带返回参数的返回None
  • 参数数目可变,通过默认值实现
    默认值在函数定义位置计算的,
    默认值只执行一次,这条规则在默认值为可变对象是很重要,列表/字典都是可变对象
def fun(a,b=[]):
  b.append(a)
  return b

print(fun(1))
print(fun(2))
print(fun(3))
#打印结果:
#[1]
#[1,2]
#[1,2,3]

以下不会在后续调用之间共享默认值

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L
  • 关键字参数
    可以使用形如karg=value来调用参数
def f(a,b=2,c='qw',d='er'):
  print('a:',a);
  print('b:',b);
  print('c:',c);
  print('d:',d);

f(1)
f(a=1)
f(a=1,b=45)
f(67,'qwty','df')

f(b=78,34)
f(a=122,344)
#以上两个报错,因为位置参数必须在关键字参数后面
f(100,a=23)
#报错,两个参数都是给a
  • *name和 **name的参数
    *name包含实参中除与正式形参相对应的位置参数以外的所有位置参数组成的元组
    **name包含实参中除与正式形参相对应的关键字参数以外的所有关键字参数组成的字典
def fun(a, *arguments, **keywords):
    print('a:',a)
    for arg in arguments:
        print(arg)
    print("-" * 40)
    for kw in keywords:
        print(kw, ":", keywords[kw])

调用

fun(1,2,3,4,e=5,f=6,g=7)
  • 1.agrs可以包含任意数目的参数,
    2.出现在
    args后的只能是关键字参数

args=[3,7]
list(range(*args))相当于range(3,7)
*运算符从列表或元组中解包参数

**运算符

keys=["a":"qw","b":"as","c":"zx"]
def fuc(a,b,c='0'):
  pass
fuc(**keys)
  • Lambda表达式
    lambda a,b:a+b 返回一个小的匿名函数,以上的表达式实现a和b的求和
pairs=[(1,'r'),(4,'b'),(0,'g'),(9,'d')]
pairs.sort(key=lambda pair:pair[1])
#sort函数中的key规定按哪个元素排序

今日标记

  • 函数标注
  • enumerate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值