Python之函数

目录

1.定义函数

2.调用函数

3.函数参数

4.参数的传递方式

5.函数的返回值

6.函数说明文档

7.函数嵌套(函数中调用函数)

8.变量的作用域

9.lambda表达式(匿名函数)


前言:

函数和方法的区别:方法需要对象去点,如:obj.test();函数是直接调用,如:test()

1.定义函数

注意:①不像Java,Python中没有修饰符,但需要关键字def

②不需要指定返回类型,可以具备返回值

③没有重载

# 函数定义
def 函数名():
    代码块

2.调用函数

注意:①在Python中,函数必须先定义,后调用

②每个函数都具备一个返回值,当没有给定返回值时,返回值默认为None,相当于Null

# 函数调用
函数名()

例如:test()

--test 和 test() 的区别:test 是函数,test() 是函数的返回值。

3.函数参数

# 有参函数的定义
def  函数名(参数名1,参数名2):
    代码块

有参函数的调用:参数名(参数值1,参数值2)

注意:①形参:参数名1,参数名2;实参:参数值1,参数值2

②有默认值的参数必须在最后,代码如下所示:

def fn1(b:int,a:int=2):
    pass

4.参数的传递方式

① 位置参数:
    调用函数时根据函数定义的参数位置来传递参数
    注意:传递和定义参数的顺序及个数必须一致
② 关键字参数:
    函数调用,通过“健=值”形式加以指定
③ 缺省参数:
    默认参数,用于定义函数时,为参数提供默认值,调用函数时可不传该默认参数的值
④ 不定长参数【可变参数】    用于:调用时不确定参数的个数
    --包裹位置传递:函数返回值为元组

# 语法
def  函数名(*args):
    代码块

    --包裹关键字传递:函数返回值为字典   

# 语法
def 函数名(**kwargs):
    代码块

5.函数的返回值

①返回单个值

# 语法
def 函数名(参数名1,参数名2):
    return 结果

# 调用
变量名 = 函数名(参数值1,参数值2)

②返回多个值

# 语法
def 函数名(参数名1,参数名2):
    return 结果1,结果2

6.函数说明文档

注意:函数的说明文档,建议对参数和返回值做说明

# 语法
def 函数名(参数):
    """函数的说明文档内容"""
    函数体
    return 返回值

# 使用
help(函数名)

例如:

def test(a:int,b:int):
    """
    对两个数字进行增加操作
    :param a: 第一个
    :param b: 第二个
    :return: 什么都不返回
    """
    pass
help(test)

控制台结果如下:这样既方便调用的人知道参数的类型,也可以提醒自己

7.函数嵌套(函数中调用函数)

例如:斐波拉契数列:1 1 2 3 5 8 13 21 ......

def fb(n:int):
    if n==1 or n==2:
        return 1
    return fb(n-1)+fb(n-2)


# 调用,显而易见,结果为3
print(fb(4))

8.变量的作用域

①局部变量
    在函数体内部
②全局变量
    在函数体外
③在函数体中修改全部变量的值
    --错误做法:
        在函数体中,直接使用 全局变量名 = 新值
        注意:这种做法,只是重新声明了一个局部变量,变量的名字和全局变量一样,但是修改不了全局变量的值
    --正确做法:
        (1)声明全局变量
            global 变量名
        (2)修改全局变量的值
            变量名 = 变量值

9.lambda表达式(匿名函数)

如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化

①语法:参数可以省略
    变量名 = lambda 参数列表:表达式/返回值
②参数形式:
    无参数
    一个参数
    默认参数
    可变参数:*args、**kwargs
③带判断的lambda:
    返回值中使用 三元运算符
④列表内字段数据进行排序:

# 语法
# 升序
列表.sort( key = lambda x:x['排序的列'])
# 降序        
列表.sort( key = lambda x:x['排序的列'],reverse=True)
            

今天的学习记录就到这了,拜拜!

说明:学习记录,若有错误,欢迎指正,若有疑问,欢迎评论

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值