博客
关于我
Python:函数使用
阅读量:796 次
发布时间:2023-03-08

本文共 1633 字,大约阅读时间需要 5 分钟。

函数的基本介绍

函数与方法的区别

函数是直接被调用,而方法是通过对象调用。函数可以独立存在,而方法则是属于某个类的实例。

示例:

  • print("hello") 是一个函数。
  • l1.append(2) 是一个方法,l1 是一个 list 实例。

函数的定义

Python允许定义有返回值和无返回值的函数。

示例:

def func(a, b):    return a + b
  • func 是一个有返回值的函数。
  • def func(): 是一个无返回值的函数。

Python支持参数类型提示,提高代码可维护性。

函数返回值及传参的情况

有参有返回

def say1(name1):    return name1

调用方式:say1("李四")

无参有返回

def say2():    return "被调用"

调用方式:say2()

无参无返回

def say3():    print("无参无返回")

调用方式:say3()

在 Java 中,方法被 void 修饰后返回 null,而 Python 中无参无返回的方法返回 None。

函数传参方式

  • 位置传参:res(1, 2)
  • 关键字传参:add(a=3, b=6)
  • 缺省传参:def res(a, b=3),调用方式:res(1) 或 res(1, 2)
  • 可变参数示例:

    def add(*a):    print(a)    print(type(a))add(1, 2, 3, 4, 5, 6, 7)

    字典参数示例:

    def chen(**a):    print(a)    print(type(a))chen(a=2, b=3, c=4)

    返回多个值

    利用 Python 的返回值特点,完成一个案例:

    def jisuan(*arr):    min = arr[0]    max = arr[0]    total = 0    for i in arr:        if i < min:            min = i        if i > max:            max = i        total += i    return min, max, total

    调用方式:print(jisuan(1, 2, 3, 4, 5))

    函数嵌套

    使用递归完成求和(1-100):

    def sum(n):    if n < 2:        return n    else:        return n + sum(n - 1)print(sum(100))

    lambda 表达式

    Python 中的 lambda 表达式用于简化函数定义。

    示例:

    jia = lambda a, b: a + bprint(jia(1, 3))

    案例:

    arr = [1, 2, 3, 4, 5, 6, 7]arr2 = map(lambda a: a * 2, arr)for i in arr2:    print(i)

    案例:

    a = [1, 2, 3, 4, 5, 6, 7]b = [8, 9, 10, 11, 12, 13, 14]xj = lambda a, b: a + bc = map(lambda e1, e2: e1 + e2, a, b)for i in c:    print(i)

    案例:

    d = filter(lambda e: e > 5, b)for i in d:    print(i)

    案例:

    persons = [    {"name": "张三", "age": 20},    {"name": "李四", "age": 17},    {"name": "王麻子", "age": 21}]persons.sort(key=lambda p: p['age'], reverse=True)print(persons)

    转载地址:http://wdlfk.baihongyu.com/

    你可能感兴趣的文章
    Python3.1-网格模拟概念性问题
    查看>>
    Python3.12 解决conda环境libstdc++版本过低问题
    查看>>
    python3.2批量查询IP地址区域
    查看>>
    Python3.5中协程和未来/任务之间的区别?
    查看>>
    python3.5实现socket通讯(TCP)
    查看>>
    python3.6 ubuntu部署nginx、 uwsgi、 django
    查看>>
    Python3.6.3中,functools似乎不能用
    查看>>
    python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
    查看>>
    python3.6使用pickle序列化class
    查看>>
    python3.6入门到高阶(全栈) day027 网络通信协议 osi七层模型
    查看>>
    Python3.6属性错误:模块‘;异步没有属性‘;运行‘;
    查看>>
    python3.6版本中的python-weka-wrapper安装失败,错误代码为%1
    查看>>
    Python3.7安装cv2踩过的坑
    查看>>
    python写txt文件
    查看>>
    python关于sorted排序函数详细解析 附实战代码(全)
    查看>>
    python3.8调用m文件,调用matlab
    查看>>
    python3.9新特性_Python 3.9 新特性速览
    查看>>
    Python3.x:遍历select下拉框获取value值
    查看>>
    python360百科_11月编程排行榜:Python超过Java成第二
    查看>>
    Python关于Paginator分页函数详细解析 附实战代码
    查看>>