day12总结

本文详细讲解了Python函数的返回值,包括返回值的定义、如何确定和获取,以及何时使用返回值。此外,还介绍了变量作用域的概念,区分了全局变量和局部变量。进一步探讨了函数参数的确定,特别是实参高阶函数的使用,并提到了匿名函数的应用,如max、min、map和sorted等高阶函数的示例。

1.函数返回(return) 值

1.1 什么是返回值 - 返回值就是从函数内部传递到函数外部的数据(Python中的每个函数都可以传递一个数据到函数的外部)
1.2 怎么确定一个函数的返回值(怎么在函数的内部将数据传递到函数的外部)return后面的值就是函数的返回值(执行函数体的时,候如果遇到 return,return后面的值就是函数的返回值)

1.3 怎么在函数外部获取函数返回值
获取函数调用表达式的值就是获取这个函数的返回值
函数调用表达式 - 调用函数的语句

1.4 什么时候使用返回值:
如果实现函数的功能,产生了新的数据,就将新的数据作为函数的返回值返回

# 1)return确定返回值
# return后面放需要返回的数据
def func1(a, b):
    # a = 10, b = 20
    result = a + b      # 30
    return result       # return 30
    
    
  # 一个函数只有一个返回值(一个函数最多只能有一个return有效);如果想要把多个数据作为函数的返回值返回,可以在一个return后面写多个数据
def func2(a, b):
    result1 = a + b
    result2 = a * b
    return result1, result2
    
# return除了可以返回数据,还会提前结束函数(执行函数体的时候如果遇到return,函数直接结束)
def func3():
    print('++++++')
    print('------')
    return                          #  相当于 return None
    print('======')

  1. 获取函数的返回值

    函数调用表达式的值就是函数的返回值。

    2.变量作用域

    2.1 定义:变量使用的有效范围

    变量:可以分为全局变量和局部变量。

    ​ 2.1.1 全局变量:没有定义在函数或类里面的变量。

    ​ 2.1.2 局部变量:定义在函数中的变量是局部变量,定义在类中的变量是属性。

    作用域:从定义开始到函数结束。

    3.不同变量的存储方式

    全局变量默认保存在全局栈区间,程序结束后才会被释放。

    局部变量默认保存在函数对应的临时栈区间,函数调用结束后会自动释放。

    在函数中定义变量的时候,可以必须在变量前加 global 关键字,让函数中定义的变量可保存在全局栈区间。

    如果要在函数内修改一个全局变量的值,必须先用 global 对变量进行声明。

    4.函数参数的确定

    ​ 4.1 调用函数的时候,实参由参数在函数体中的使用方式确定

    5.实参高阶函数

    5.1 定义:函数的参数是函数。

    如果一个参数是函数,传参的时候有两种方法:1)用普通函数的函数名

    2)使用匿名函数

    6.匿名函数

    ​ 6.1 定义:匿名函数的本质还是函数,但是它只能实现简单的功能

    (一行语句就能实现的功能)

    函数名 =  lambda 形参列表:返回值
    
    相当于:
    def 函数名(形参列表):
        return 返回值
    

    ​ 6.2 应用

    在给实参高阶函数传参的时候,可以使用普通函数的函数名,也可以使用匿名函数(尽量使用匿名函数)

    7.常用实参高阶函数(max、min、map、sorted)

    ​ 7.1 max(序列)

    ​ 7.2 max(序列,key=函数)

    ​ 函数的要求:a.有且只有一个参数(这个参数代表序列中的每一个元素)

    ​ b.需要一个返回值(返回值是比较对象,将参数看成元素,在这个地方来描述比较对象和元素之间的关系)

    示例1:求nums中值最大的元素
    nums = [18, 23, 67, 90, 56, 49]
    result = max(nums, key=lambda item: item)
    print(result)
    

    ​ 7.3 map(函数,序列1,序列2)

    ​ 函数的要求:a.有且只有两个参数(分别代表后面两个序列中的元素)

    b. 有返回值(返回的是对应新序列中的元素)

    推广:map(函数、序列1、序列2、序列3…)

nums = [82, 67, 89, 6617, 90, 23, 71]
# [2, 7, 9, 7, 0, 3, 1]
result = map(lambda item: item % 10, nums)
print(list(result))

​ 7.4 reduce 将序列中所有的元素通过指定的规则合并成一个数据

reduce(函数, 序列, 默认值)
函数的要求:a.有且只有两个参数(第一个参数指向默认值,第二个参数指向序列中的每个元素)
          b.需要一个返回值(描述合并方式,说清楚最后的结果是初始值和序列中元素进行什么样的操作得到的)
 注意:reduce使用之前要先导入
from functools import reduce
示例1: 求nums中所有元素的和
nums = [10, 20, 30, 40]
# 0 + 10 + 20 + 30 + 40
result = reduce(lambda i, item: i + item, nums, 0)
print(result)

​ 7.5 sorted(升序或降序排列)

# 练习4:将students中的元素按照分数从高到低排序
# 方法一
result = sorted(students, key=lambda item: item['score'], reverse=True)
print(result)

# 方法二
students.sort(key=lambda item: item['score'], reverse=True)
print(students)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值