python基础day05

1.函数作用:对重复代码块进行封装,达到了代码的重复利用

2.语法:
def 函数名([形式参数]):
函数体(重复代码块)
# 返回数据
return 数据
3.函数定义三部曲
确定函数名:见名知意,理解函数功能
确定形式参数:函数体中是否有未知参数参与运算,如果有就将其定义为形式参数
确定返回值:
1.如果后面代码要使用函数中的运算结果,就需要在函数中使用return返回运算结果
2.如果不确定是否需要返回,建议返回
3.要求函数调用后获取/得到…,也要返回
4.只要当要求 输出/处理后不需要返回,这时候才不返回
4.pass空语句
作用:为了保证语句完整语法结构,如果没有清楚具体写什么,可以先用pass占位

5.函数注释:对函数进行解释和说明
语法:函数名下,缩进里面 通过 三引号 进行注释
def 函数名([形式参数]):
“”"
函数功能简介
参数说明
:param 参数名:说明
:return:数据类型 说明
“”"
pass
6.函数参数加强
1) 必传参数
没有默认值得参数就是必须参数
2) 默认参数
给参数一个默认值, 不传该参数就使用默认值,如果传递该参数就使用传入的值
def 函数名(a,b,c=10):
pass
默认值参数必须跟在无默认值参数的后面
3) 关键字参数
在函数调用的时候, 可以给实际参数进行命名(名字=形参名), 好处是可以交换实参的顺序
函数名(a=值,b=值,c=值)

7.打包
函数定义的时候
按照位置参数打包,使用 *args 打包所有的位置参数为一个元组
按照关键字打包,使用 **kwargs 打包关键字参数成一个字典
什么时候使用打包:在不确定参数数量的时候使用打包

def 函数名(*args,**kwargs):
    pass

8.拆包
函数调用的时候
特定情况

	按位置参数进行拆包, 如果 元组/列表/字典.values() 中数据的顺序和实际参数的顺序是一致的时候,
    就可以使用 *元组/列表/字典.values() 进行拆包传递给函数作为实际参数, 好处是不用依次从容器中取.
    
    按关键字参数进行拆包, 如果字典中的键就是关键参数的名字, 使用 **字典 对字典进行拆包传递给函数作为实际参数.
    
    函数名(*元组/列表/字典.values())===>函数名(元素1,元素2....)
    函数名(**字典) ===>函数名(键=值....)
# 函数封装
def cf99():
    i = 1
    while i <= 9:
        j = 1
        while j <= i:
            print(f"{j}*{i}={j * i}", end="\t")
            j += 1
        print()
        i += 1


# 调用
cf99()




# 定义一个函数,求解一个月的话费
def total(x):
    y = 22 + 0.1 * x
    print(y)


# 调用
total(100)


# 定义一个函数求解两个数的和,并且进行返回
def sum(x, y):
    res = x + y
    # 返回结果
    return res


# 调用函数
result = sum(20, 30)  # 后面代码需要使用前面的结果,就使用一个变量保存
print(result)





if 3 > 2:
    # 不知道写什么  为了保证结构完整  就写上空语句pass占位
    pass


def fn(x, y, op):
    """
    根据传入具体运算方式进行运算
    :param x: 数字1
    :param y: 数字2
    :param op: 运算方式
    :return: 运算结果
    """
    return op(x, y)


result = fn(10, 20, lambda x, y: x * y)
print(result)



def add(a, b=10):
    print(a, b)
    return a + b


# 使用关键字参数,不用考虑形参前后顺序
result = add(b=20, a=10)
print(result)


# 打包
# 求解传递函数的数字和(没有说明有多少数字)
def sum(*args):
    add = 0
    for a in args:
        add += a
    return add


# 调用函数
result = sum(1, 2, 3, 4, 5)
print(result)


# 输出 传递函数的个人信息 (不知道有什么信息)
def message(**kwargs):
    for k, v in kwargs:
        print(k, v)


# 调用函数
message(name="张三", age=18, sex="男", hobby="玩")




# 例子 关键字拆包
card = {"name": "张飞", "sex": "男", "age": 28}

# 输出名片信息
print("""
姓名: {name}
性别: {sex}
年龄: {age}
""".format(**card))

# 列表 位置参数拆包
card = ["张三", "男", 28]
# 按照顺序传入
print("""
姓名: {}
性别: {}
年龄: {}
""".format(*card))

# 函数返回值
# 定义一个函数,让用户录入QQ号和密码
def login():
    qq = input("QQ:")
    password = input("密码:")
    return qq, password


# 调用函数
qq, password = login()  # 元组 可以给多个变量赋值
print(qq, password)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值