函数

默认参数

在定义阶段就给形参赋值——该形参的常用值
默认参数必须放在非默认参数后面

可选参数

def name(first_name, last_name, middle_name=None):

默认参数应该设置为不可变类型(数字、字符串、元组)
可变类型会记忆地址,使得每次都在上次的基础上进行

def function(ls=[]):
    print(id(ls))
    ls.append(1)
    print(id(ls))
    print(ls)


function()
function()

在这里插入图片描述
不可变类型,每次地址都不同
在这里插入图片描述

可变长参数

一个星号,表明将所有的值放在同一个元组中

def foo(x, y, z, *args):
    print(x, y ,z)
    print(args)
    
    
foo(1, 2, 3, 4, 5, 6)    # 多余的参数,打包传递给args

等价于下面,若传元组,前面加*即可打散

foo(1, 2, 3, *[4, 5, 6])   # 打散的是列表、字符串、元组或集合

否则将元组看做一个元素
在这里插入图片描述

两个星号,表明将所有的值放在同一个字典中
注意字典传值是=

def foo(x, y, z, **kwargs):
    print(x, y ,z)
    print(kwargs)
    
    
foo(1, 2, 3, a=4, b=5, c=6)    #  多余的参数,以字典的形式打包传递给kwargs

等价于

# 字典解封装用**及其对应
foo(1, 2, 3, **{"a": 4, "b": 5, "c":6})

多个返回值——以元组的形式

def foo(x):
    return 1, x, x**2, x**3    # 逗号分开,打包返回a, b , c, d = foo(3)       # 解包赋值
print(a)
print(b)
print(c)
print(d)

匿名函数 lambda 变量: 返回值

s = "八百标兵奔北坡,北坡八百炮兵炮。标兵怕碰炮兵炮,炮兵怕把标兵碰。"
d = {}
for i in s:
    d[i] = d.get(i, 0) + 1
print(d)
print(sorted(d.items(), key = lambda item : item[1], reverse=True))

print(sorted(要排序元素,排序依据))
https://blog.csdn.net/zjuxsl/article/details/79437563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值