Pyhton学习的自我理解和想法(11)

简介: 这是一篇关于Python函数学习的总结文章,基于B站千锋教育课程内容编写。作者在开学时间有限的情况下,重点梳理了函数的返回值(无返回值、有返回值、返回函数)、嵌套函数(闭包的应用)以及函数名字(有名字函数与匿名函数)。通过实例讲解了返回值的作用、闭包实现私有变量和缓存功能,以及lambda表达式的使用。本文旨在帮助读者深入理解函数相关概念,提升代码灵活性与可维护性。

学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!
今天是学Python的第11天,学的内容还是函数。开学了,时间不多,写得不多,见谅。
目录
1.函数的返回值
(1).无返回值
(2)有返回值
(3)返回函数
2.嵌套函数(闭包)
(1).定义和调用嵌套函数
(2).定义和调用嵌套函数
(3).闭包的应用
3.函数的名字
(1).有名字的函数​编辑
(2)匿名函数
(3)实战
总结


1.函数的返回值

返回值定义:函数的返回值是函数执行后返回给调用者的结果。它可以是任何数据类型,如整数、字符串、列表、字典等。

(1).无返回值

特点:无返回值的函数主要用于执行操作但不需返回结果的情况。例如,显示菜单、对全局变量进行操作等,这些操作不需要向外界汇报结果,只是单纯地执行某些任务‌.
自我理解:发布命令就执行去了.
20c2da9d7ee3454db790a7a2f151f516.png

(2)有返回值

特点:有返回值的函数则用于需要输出结果的情况,返回值使得函数的结果可以被赋值给变量,进一步参与程序的运算和处理‌.
自我理解:发布命令,执行了,执行完后向你汇报自己的执行成果.
注意:1.函数返回值需要使用return关键字进行返回,函数在哪里调用,就把结果返回到了哪里.若想使用返回的结果,可以定义变量接收,也可以直接输出.

2.retuen后面的代码不会执行.

image.png
3.函数中若没有return关键字或者没有数据返回,则默认返回是None.
image.png
4.return关键字一次性返回多个数据,多个数据之间使用,隔开.结果以元组的形式返回.
image.png
也可以返回一个列表.

def get_numbers():
    return [1, 2, 3, 4, 5]

numbers = get_numbers()
print(numbers)  # 输出 [1, 2, 3, 4, 5]

(3)返回函数
函数还可以返回另一个函数。这种技术在一些高级编程场景中非常有用,例如装饰器和闭包。

def outer_function():
    def inner_function():
        print("This is the inner function.")
    return inner_function

inner_func = outer_function()
inner_func()  # 输出 "This is the inner function."
def multiplier(factor):
    def multiply_by_factor(number):
        return number * factor
    return multiply_by_factor

double = multiplier(2)
print(double(5))  # 输出 10

2.嵌套函数(闭包)

定义:嵌套函数是在另一个函数内部定义的函数。嵌套函数可以访问外部函数的变量,这种特性称为闭包。
自我理解:函数的调用可以在函数前,但必须定义了函数.一个调用一个,但不能是死循环,比如在定义test3时调用test1,会报错!

(1).定义和调用嵌套函数

image.png

(2).定义和调用嵌套函数

嵌套函数还可以访问外部函数的变量。

def outer_function():
    x = 10
    def inner_function():
        print(x)
    return inner_function

inner_func = outer_function()
inner_func()  # 输出 10

(3).闭包的应用

# 使用闭包实现私有变量
def counter():
    count = 0
    def increment():
        nonlocal count
        count += 1
        return count
    return increment

c = counter()
print(c())  # 输出 1
print(c())  # 输出 2
print(c())  # 输出 3
# 用闭包实现一个简单的缓存功能
def cache_function():
    cache = {
   }
    def inner_function(n):
        if n in cache:
            return cache[n]
        result = n * n
        cache[n] = result
        return result
    return inner_function

cached_square = cache_function()
print(cached_square(5))  # 输出 25
print(cached_square(5))  # 直接从缓存中获取,输出 25

3.函数的名字

(1).有名字的函数

image.png

(2)匿名函数

语法:使用lambada定义的表达式. 【lambada表达式中包含了参数,实现体,返回值】
image.png

(3)实战

匿名函数实现求一个数字的平方 num1 = lambda num: num ** 2 ,后面是return的结果(对num做什么),下行中()中的内容是对num的赋值 print(num1(3)).
image.png

总结

函数的返回值、嵌套函数和匿名函数是编程中非常重要的概念。它们可以让我们更加灵活地编写代码,提高代码的可读性和可维护性。希望本文能够帮助你更好地理解和运用这些编程概念。
这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

相关文章
|
存储 IDE 测试技术
探索Python中的变量宇宙:详尽解读与实战避坑指南
【4月更文挑战第4天】本文深入探讨了Python变量,包括其声明与赋值、数据类型,以及常见错误和应对策略。通过实例展示了变量在存储用户输入、计算、控制流程和函数参数等方面的应用。强调了理解变量作用域、避免类型不匹配和未初始化的错误,同时提出了最佳实践,如明确命名、避免冗余、适时复用和使用类型提示,以提升编程效率和代码质量。
118 2
|
安全 前端开发 PHP
警惕!Python 中少为人知的 10 个安全陷阱!
警惕!Python 中少为人知的 10 个安全陷阱!
66 1
|
机器学习/深度学习 IDE 数据挖掘
如何系统地自学python?
如何系统地自学python?
75 1
编程之旅:从代码中寻找生活的启示
【9月更文挑战第19天】本文是一篇关于编程和生活哲理相结合的感悟文章。文章以通俗易懂的语言,深入浅出地探讨了编程与生活的相似性,旨在启发读者从编程的角度去思考生活,从而获得对生活的新认识。文章通过分享作者的个人经历,阐述了如何将编程中的逻辑思维、解决问题的方法应用到生活中,以及如何从编程的过程中找到生活的乐趣和意义。
|
9月前
|
开发者 Ruby
神秘编程魔法惊现!Ruby 元编程究竟隐藏着怎样的力量?竟能让代码自我进化!
【8月更文挑战第31天】《Ruby元编程:让代码自我进化》介绍了Ruby元编程的魅力,通过动态修改代码结构和行为,实现代码自我进化。文章通过实例展示了如何使用`class_eval`动态添加属性和方法,以及通过别名修改现有方法。此外,还介绍了利用模块实现代码复用和扩展。元编程为开发者提供了极大的灵活性和创造力,使代码更加动态高效。
61 0
|
10月前
|
设计模式 JavaScript 程序员
探索源码:程序员的自我提升之路
探索源码:程序员的自我提升之路
67 1
|
10月前
|
Python
从入门到精通,Python元类:让你的代码拥有自我进化的超能力
【7月更文挑战第7天】元类是Python中类的类,用于定义类的创建和行为。它们允许在创建类时动态修改,常用于注册、属性修改或实现单例。要使用元类,需定义继承`type`的类,重写`__new__`或`__init__`。例如,一个简单的元类能自动给新类添加属性。虽然初学者会感到挑战,但通过实践能揭示其潜力,赋予代码超凡的灵活性。**
71 0
|
10月前
|
存储 Unix Shell
Shell编程基础与实用技巧
Shell编程基础与实用技巧
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
317 12
|
机器学习/深度学习 自然语言处理 算法
python新手如何系统学习,走过这4个阶段成为高手
python新手如何系统学习,走过这4个阶段成为高手
151 0