python编程从入门到实践 :函数

函数

函数的格式 :
def 函数名() :
函数体

传递实参

传递参数的两种方式,位置实参和关键字实参。

位置实参

调用函数时,python必须将函数调用的每个实参都关联到函数定义中的一个形参,为此最简单的关联方式就是基于实参的顺序 , 这种关联方式称为位置实参 。
位置实参的顺序很重要。

关键字实参

关键字实参是传递给函数时以名称值对的方式。关键字实参无须考虑函数调用中的实参顺序,使用关键字实参时,务必准确指定函数定义中的形参名 。

默认值

编写函数时,可以给每个形参指定默认值。在形参列表中先列出没有默认值的形参,再列出有默认值的形参 。
可以将默认值设置成None,视为占位符,如果赋值进行判断,否则视为False跳过判断。

让实参变成可选的

调用这个函数时,如果只想指定姓和名。调用起来非常简单,如果还要指定中间名,就必须确定它是最后一个参数,这样python才能正确的将位置形参关联到形参。

def get_formatted_name(first_name, last_name, middle_name=''):
    """Return a full name, neatly formatted."""
    if middle_name:
        full_name = f"{first_name} {middle_name} {last_name}"
    else:
        full_name = f"{first_name} {last_name}"
    return full_name.title()
    
musician = get_formatted_name('jimi', 'hendrix')
print(musician)

musician = get_formatted_name('john', 'hooker', 'lee')
print(musician)

传递任意数量的实参

形参名toppings中的号让python创建了一个名为toppings的空元组,将所有收到的值都封装到这个元组中。
必须将接受任意数量实参的行参写到最后,python会先匹配位置实参和关键字实参,最后把余下的实参都放到一个行参中。(你通常会看到== 形参名
args== ,就是收集任意数量的位置实参)

def make pizza(*toppings):
	print(toppings)

使用任意数量的关键字实参

形参**uesr_info中的两个星号让python创建一个user_info的空字典。(你经常看到形参名 **kwargs,就是任意数量的关键字实参)

def build_profile(first, last, **user_info):
    """Build a dictionary containing everything we know about a user."""
    user_info['first_name'] = first
    user_info['last_name'] = last
    return user_info

user_profile = build_profile('albert', 'einstein',
                             location='princeton',
                             field='physics')
print(user_profile)

全局变量和局部变量同名,在函数中使用全局变量修改加上global 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值