python函数

编写可接受任意数量参数的函数

要编写一个可接受任意数量的位置参数的函数,可以使用以*开头的参数。示例如下:

def avg(first, *rest):
    return (first + sum(rest)) / (1+len(rest))

print(avg(1, 2))    # 1.5
print(avg(1,2,3,4))    # 2.5

如果要接受任意数量的关键字参数,可以使用以**开头的参数。示例如下:
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def d(**kargs):
    print(kargs)
    
d(a=1,b=2)
# {'a': 1, 'b': 2}

如果想要函数能同时接受任意数量的位置参数和关键字参数,只要联合使用*和**即可。示例如下:

def anyargs(*args, **kwargs):
    print(args)       # A tuple
    print(kwargs)    # A dict

在这个函数中,所有的位置参数都会放置在元组args中,而所有的关键字参数都会放置在字典kwargs中。

编写只接受关键字参数的函数

我们希望函数只通过关键字的形式接受特定的参数。
如果将关键字参数放置在以打头的参数或者是一个单独的之后,这个特性就很容易实现。示例如下:

def recv(maxsize, *, block):
    'Receives a message'
    pass

recv(1024, True)         # TypeError
recv(1024, block=True)     # Ok

这项技术也可以用来为那些可接受任意数量的位置参数的函数来指定关键字参数。示例如下:

def mininum(*values, clip=None):
    m = min(values)
    if clip is not None:
        m = clip if clip > m else m
    return m

mininum(1, 5, 2, -5, 10)             # Returns -5
mininum(1, 5, 2, -5, 10, clip=0)     # Returns 0

在这里插入图片描述
如果你想检查多种匹配可能,只需要将所有的匹配项放入到一个元组中去,然后传
给startswith() 或者endswith() 方法:

>>> import os
>>> filenames = os.listdir('.')
>>> filenames
[ 'Makefile', 'foo.c', 'bar.py', 'spam.c', 'spam.h' ]
>>> [name for name in filenames if name.endswith(('.c', '.h')) ]
['foo.c', 'spam.c', 'spam.h'
>>> any(name.endswith('.py') for name in filenames)
True
>>>

字符串匹配和搜索
在这里插入图片描述
字符串的搜索和替换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值