• 【Python】自定义函数、lambda函数与内置函数


    1 基础知识

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。格式如下:

    def 函数名(参数):
        函数主体
        return 返回对象
    
    • 1
    • 2
    • 3

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    第一:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

    第二:任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

    第三:函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

    第四:函数内容以冒号起始,并且缩进。

    第五:return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。

    2 lambda函数

    lambda函数在Python中被称为匿名函数,具体基本格式如下:

    函数名=lambda 参数: 表达式

    • 应用场景

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

    • 示例
    # 自定义add函数
    >>> def add(a,b):
    ...     return a+b
    >>> add(1,2)
    3
    # lambda实现
    >>> add=lambda a,b:a+b
    >>> add(2,4)
    6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    示例

    定义一个计算平均收益率的函数。

    1、代码中已经给出收益率列表,请定义对应的平均收益率函数,并在函数中返回。

    2、 输出时要求保留两位小数。

    def a_mean(r):
        total=sum(r)
        n=len(r)
        mean=total/n
        return mean
        
    r=[0.05,0.01,0.03,0.1,0.07] 
    mean1=a_mean(r)
    print(f'{mean1:.2f}')
    
    #out 
    0.05
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3 内置函数列表

    内置函数在Python中占有非常重要的地位,熟练使用内置函数对学习和使用python来说非常重要。Python官方文档给出python内置函数文档如下,下一节我们来学习一些常用的内置函数。

    4 常用函数示例

    4.1 abs()

    abs(x)

    返回给定参数的绝对值,参数可以是整数,浮点数,复数,如果是复数则返回它的模。

    >>> abs(-12)
    12
    >>> abs(13)
    13
    >>> abs(3+4j)
    5.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    4.2 round()

    round(number,[ndigits])

    返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。

    >>> round(2.4827,2)
    2.48
    >>> round(2.48)
    2
    
    • 1
    • 2
    • 3
    • 4
    4.3 max(),min()

    max函数返回可迭代对象中最大的元素,min函数返回可迭代元素中最小的元素。

    >>> max(12.4,2,5,8)
    12.4
    >>> min(12.4,2,5,8)
    2
    
    • 1
    • 2
    • 3
    • 4
    4.4 sum()

    sum(iterable, /, start=0)

    start为指定相加的参数,默认为0。从 start 开始自左向右对 iterable 的项求和并返回总计值。 iterable 的项通常为数字,而 start 值则不允许为字符串。在 3.8 版更改: start 形参可用关键字参数形式来指定。

    >>> list1=[1,2,3,4,5]
    >>> tup1=(13,17,20)
    >>> sum(list1)
    15
    >>> sum(list1,1)
    16
    >>> sum(tup1)
    50
    >>> sum(tup1,20)
    70
    >>> sum(tup1,-30)
    20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    4.5 sorted()

    sorted(iterable, key=None, reverse=False)

    sorted()函数是python的一个内置排序函数,它接受三个参数,如下

    iterable:可迭代对象,可以是字符,列表,字典等;

    key:按照指定关键字排序,默认None;

    reverse:排序规则,默认False升序,即从小到大。reverse=True时降序排列。

    >>> list1
    [1, 2, 3, 4, 5]
    >>> sorted(list1)
    [1, 2, 3, 4, 5]
    >>> list1=[3,2,8,5,1]
    >>> sorted(list1)   # 升序
    [1, 2, 3, 5, 8]
    >>> sorted(list1,reverse=True) # 降序
    [8, 5, 3, 2, 1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    对字典排序,当key=None,reverse=False时,默认按键值进行升序排列。可以使用关键字随意按键或者值进行排序,如下

    >>> dic={'a':1,'b':4,'d':2}
    >>> sorted(dic)
    ['a', 'b', 'd']
    # 通过指定key进行排序
    >>> dic={'a':1,'B':4,'d':2}
    >>> sorted(dic,key=str.lower)
    ['a', 'B', 'd']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在使用sorted()进行排序时需要注意它的以下特性

    1)结果返回一个新的列表

    2)不是原地操作,不会改变原对象的的顺序

    3)默认进行升序排列

    4)sorted()是一个内置函数,标准安装的python环境就能使用

    4.6 list.sort()

    list.sort(self, key=None, reverse=False)

    sort()是列表的一个方法,也能实现排序功能。其用法基本和sorted()内置函数差不多。不过它有着和sorted()区别很明显的特性,如下

    1)sort()是列表的一个方法,使用格式list.sort()

    2)原地操作,不会创建新的列表,直接在原列表上操作,所以会改变原列表的排序

    3)没有返回值,或者返回值为None

    >>> list1=[4,3,8,2,0]
    >>> sorted(list1)
    [0, 2, 3, 4, 8]
    >>> list1
    [4, 3, 8, 2, 0]
    >>> list1.sort()
    >>> list1
    [0, 2, 3, 4, 8]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    GitHub暴涨4W下载量!阿里内网的大型分布式技术手册到底有多强
    LightDB23.4 table函数支持column_value列
    【Java练习题第二期】:用Java实现链表内指定区域的反转
    SNAT和DNAT
    基于Java的在线聊天APP系统分析及设计
    Docker 四种制作镜像方式
    Mybatis:Mybatis的各种查询功能(5)
    二叉树 | 代码随想录学习笔记
    强化学习-task2
    JSON Web Tokens攻击漏洞手法
  • 原文地址:https://blog.csdn.net/baidu_39621090/article/details/126641316