Python之函数

# 函数把独立的代码块写入函数里重复使用
'''
def 函数名(): # 注意:函数名定义遵守标识符规范
    代码块
调用函数
函数名()

总结:
1、函数的作用:更高效的避免代码的重用,将重用的代码封装到函数中
2、函数的注意事项:
    2.1函数先定义后调用,如果说先调用后定义(会报错)
    2.2如果没有调用函数,只定义函数,函数体内部的代码是不会执行的
3、函数的执行流程:
    当调用函数的时候,解释器回到定义的地方去执行下面缩进的代码
    当这些代码执行完之后,才会回到调用的地方继续执行
'''
# return 会给函数的执行返回值
# 注意:使用return需要通过print打印出来


def bag():
    # 定义变量保存里面的物品
    a = '键盘'
    b = '鼠标'
    c = '显示器'
    return a, b, c
# 调用函数
print(bag())

# return后面可以跟任意对象,甚至可以是一个函数
def funa():
    num = 10
    list1 = ['a', 'b']
    dict1 = {'name': 'Ustinian'}
    return num, list1, dict1, bag()

print(funa())

# 注意:如果函数返回自己会报错,递归错误,递归超出了最大深度


def add(a, b):  # a, b是形参
    return a + b

print(add(3, 5))

# 传参:实参传给形参
# 形参写在定义函数的位置,仅在函数体内有效
# 实参写在函数调用的位置

# 1.必备参数(位置参数),写了几个参数就必须传递几个值
def fin1(name1, name2):
    print(name1)
    print(name2)

fin1('Ustinian', 'love')

# 2.默认参数
def fin2(name, age=20):
    print(f'我是{name},今年{age}了')

fin2('Ustinian')
fin2('Ustinian', 21)
# 总结:设置了默认值,没有传值会根据默认值来执行,传了值根据你传入的值来执行代码
# 注意:默认值需要定义在参数的最后面,不然会报错,可以有多个默认值

# 3.可变参数*args,传入值的数量是可以改变的,可以传入多个,也可以不传入
# *args:前面的*有特殊意义的,args只是一个普通的形参,以元组的形式接收
def fin3(*args):
    print(args)
    print(type(args))

fin3()  # 注意:不加参数是默认空元组
fin3('Ustinian', '666', '888')
# 注意:可以将args改成其他的参数名,比如a,b,c,但是args符合代码的规范性

# 4.关键字参数
# **kwargs:前面的**有特殊意义,kwargs是一个普通的形参,以字典的形式接收
def fin4(**kwargs):
    print(kwargs)
    print(type(kwargs))

fin4()  # 注意:不加参数是默认空字典
# fin4('Ustinian', 21)  # 报错,要采用键等于值的形式
fin4(name='Ustinian', sex='男', age=21)

# 函数嵌套:一个函数中还有函数
# 1.1 函数调用:在一个函数里面调用另外一个函数
# 例如:在函数b里面调用函数a
def funa():
    print('---a---')
    print('这是a函数')


def funb():
    print('---b---')
    print('这是b函数')
    funa()

funb()

# 1.2 函数嵌套定义:在一个函数中定义另外一个函数
def fun1():
    print('---a---')
    print('这是a函数')
    def fun2():
        print('---b---')
        print('这是b函数')
    fun2()
fun1()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值