iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >【Python基础】- 自定义函数和匿名函数
  • 865
分享到

【Python基础】- 自定义函数和匿名函数

python开发语言 2023-09-01 11:09:50 865人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

  🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬

 3f6a7ab0347a4af1a75e6ebadee63fc1.gif

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:python学习
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


1960c21e179141a6bc410ccda1e08f1e.png

python3 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。  

函数能提高应用的模块性,和代码的重复利用率。前面我们用过了很多Python内置函数,比如print(),input()等。但你也可以自己创建函数,这被叫做用户自定义函数。  

4bb47de2423a4e85854cfe3fe649d9ea.png

Python函数的分类

0222f59800654373a57e7f49f62b77de.png

Python函数分为如下几类:

1. 内置函数

我们前面使用的 str() 、 list() 、 len() 等这些都是内置函数,可以拿来直接使用

2. 标准库函数

我们可以通过 import 语句导入库,然后使用其中定义的函数

3. 第三方库函数

Python社区也提供了很多高质量的库,下载安装这些库后,也是通过 import 语句导入,然后可以使用这些第三方库的函数

4. 用户自定义函数

用户自己定义的函数,显然也是开发中适应用户自身需求定义的函数。

定义一个函数

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

  • - 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • - 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • - 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • - 函数内容以冒号 : 起始,并且缩进。
  • - return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

a292c07aeaf04fafadf80fba8eeeaec1.png

"""Python 定义函数使用 def 关键字,一般格式如下:def  函数名 ([参数列表]) :    '''文档字符串'''    函数体/若干语句"""def say_hello():    print('Hello world!')    say_hello()

b7de6031ef264b3a880f6917e5e621a8.png

# 带参数的函数def add(a,b,c):    '''完成三个数的加法,并返回他们的和'''    sum = a+b+c    print(f"{a}、{b}、{c}三个数的和是:{sum}")    return sumresult = add(10,20,30)print(result)

 4289f42d27184800bd8ed500fe98e4d0.png

4cfdbbbf244345bbab504bdc20e6660d.png

参数

以下是调用函数时可使用的正式参数类型:  

  • - 位置参数
  • - 关键字参数
  • - 默认参数
'''位置参数位置参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。'''def self_introduction(name,age):  # name和age叫做形参    print(f'我叫{name},今年{age}岁了!')self_introduction('艾派森',10)  # '艾派森'和'10'叫做实参

a00fd6f8e47f4a4982fea7a9772c36de.png

'''关键字参数关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。'''def self_introduction(name,age):    print(f'我叫{name},今年{age}岁了!')self_introduction(name='艾派森',age=18)self_introduction(age=20,name='艾派森')

 5e8140edd65c4ed49746f2a126f89316.png

'''默认参数调用函数时,如果没有传递参数,则会使用默认参数。'''def self_introduction(name,age,school='家里蹲大学'):    print(f'我叫{name},今年{age}岁了,在{school}上学!')self_introduction(name='艾派森',age=18)self_introduction(name='艾派森',age=18,school='哈佛大学')

 72ae6856234e4bbd8a46e26c2079543a.png

# 默认参数必须放在最后面,否则会报错def self_introduction(school='家里蹲大学',name,age,):    print(f'我叫{name},今年{age}岁了,在{school}上学!')

96be2bc6be974a10b5dfdba40be24fc1.png

匿名函数  

Python 使用 lambda 来创建匿名函数。  

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。  

  • - lambda 只是一个表达式,函数体比 def 简单很多。
  • - lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
  • - lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
'''lambda 函数的语法只包含一个语句,语法如下:lambda [arg1 [,arg2,.....argn]]:expression'''f = lambda x:x*xprint(f(5))

a3d0914fc301441fb39219cd90501823.png

# 匿名函数传入多个参数,也可以使用关键词传参f = lambda x1,x2:x1+x2print(f(10,20)) print(f(x1=10,x2=20))

 4ba61da5ddcf429386984acf18f8fcf0.png

eval()函数

功能:将字符串 str 当成有效的表达式来求值并返回计算结果。  

注:eval函数 会将字符串当做语句来执行,因此会被注入安全隐患。  

比如:字符串中含有删除文件的语句,那就麻烦大了。因此,使用时候,要慎重!!!

 4375a79220f84b20977d52be22bc0484.png

变量的作用域(全局变量和局部变量) 

变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。

变量分为:全局变量、局部变量。  

399e2f5aa02d47b5bdef4c18156b5d19.png

全局变量:

在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块结束。

全局变量降低了函数的通用性和可读性。应尽量避免全局变量的使用。

要在函数内改变全局变量的值,使用 global 声明一下

局部变量:

在函数体中(包含形式参数)声明的变量。

局部变量的引用比全局变量快,优先考虑使用

如果局部变量和全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量

# 【操作】全局变量的作用域测试n = 50         # 全局变量def f():    global n    # 如果要在函数内改变全局变量的值,增加global关键字声明    print(n)    # 打印全局变量n的值        n = 100          f()print(n)  # n已经由50经过函数f转变为100

3035f7a25fac44e6b5864013b83465fd.png

# 【操作】全局变量和局部变量同名测试a = 50def f():    a = 10      # 同名的局部变量    print(a)    f()    print(a)    # a仍然是50,没有变化

acdac5cd8eb840f9b00d730b40cb6cb2.png

递归函数

递归(recursion)是一种常见的算法思路,在很多算法中都会用到  

递归的基本思想就是“自己调用自己”  

递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。  

每个递归函数必须包含两个部分:  

  • - 终止条件:表示递归什么时候结束。一般用于返回值,不再调用自己。
  • - 递归步骤:把第n步的值和第n-1步相关联。

注:递归函数由于会创建大量的函数对象、过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

# 计算阶乘:根据用户输入的整数n,计算并输出n的阶乘值。def fact(n): #计算阶乘    if n == 0:        return 1    else:        return n * fact(n-1) num = eval(input("请输入一个正整数: "))print(fact(num))

 4a61a6ada9b042338eff29a127684fe9.png

'''斐波那契数列(1、1、2、3、5、8、13、21、34、……)兔子繁殖问题:在700多年前,意大利著名数学家斐波那契在《算盘全集》中提到这样一个问题:一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,第n个月有多少对兔子?F(1)=1F(2)=1F(3)=F(1)+F(2)=1+1=2F(4)=F(2)+F(3)…………F(N)=F(N-2)+F(N-1)'''def fab(n):    if n <= 2:        return 1    else:        return fab(n-1)+fab(n-2) n = eval(input("请输入一个正整数: "))print(fab(n))

文末推荐

《TensorFlow全栈开发工程实践》

1ebee461b7344542bf6a72714e6943f3.png

内容简介:

        本书共分为 8 章,主要内容包括与人工智能相关的数学知识,Python 语言所特有的语法和技巧,Docker 模型透明无缝地发布的实现,业界优秀的 git 代码版本管理工具,模型开发环境的配置,高级人工智能开发工程师常用的 IDE 开发工具,经典神经网络模型的剖析和分解,rpc 远程调用的实现,训练样本的序化组织结构TFRecord,模型的训练、保存和封装发布,模型训练的 GPU 配置和机制策略的部署,模型从训练到发布的完整示例等。 

编辑推荐:

        本书适合有计算机专业和数学专业背景的初、中级开发者阅读,以便快速掌握和驾驭人工智能全栈技术,也适合作为在职人工智能模型开发人员查询时使用的手册级工具用书,还适合作为中职学校、高等院校及培训机构计算机人工智能和大数据等相关专业的教学用书。

文末福利

《TensorFlow全栈开发工程实践》免费包邮送出3本!

 名单公布时间:2023-07-31 21:00:00  

1c9065ea017b4b7eb700053007028ed2.png

本文章隶属于专栏【零基础学习Python数据分析】,本专栏会持续更新,永久免费,喜欢的小伙伴速速订阅!

欢迎点赞👍🏻+ 评论 💬+收藏 📂,同时也欢迎你加入我的粉丝交流群一起学习探讨!

 

来源地址:https://blog.csdn.net/m0_64336780/article/details/131997210

--结束END--

本文标题: 【Python基础】- 自定义函数和匿名函数

本文链接: https://www.lsjlt.com/news/388186.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【Python基础】- 自定义函数和匿名函数
      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬...
    99+
    2023-09-01
    python 开发语言
  • Python函数基础(定义函数、函数参数、匿名函数)
    目录一、定义函数:1、简单的规则:2、语法3、无参函数4、有参函数5、空函数二、调用函数及返回值1、函数运行完毕所有代码,如果函数体不写return,则会返回None。2、函数可以返...
    99+
    2024-04-02
  • Python基础:自定义函数
    函数的形式: def name(param1, param2, ..., paramN): statements return/yield value # optional 和其他需要编译的语言(比如 C 语言)不一...
    99+
    2023-01-31
    自定义 函数 基础
  • Python基础:lambda 匿名函数
    格式 lambda argument1, argument2,... argumentN : expression square = lambda x: x**2 print(square(2)) 与常规函数区别   匿名函数 l...
    99+
    2023-01-31
    函数 基础 Python
  • python基础之引用和匿名函数
    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'...
    99+
    2024-04-02
  • Python 函数(lambda 匿名函数、自定义函数、装饰器)基本使用指南
    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段 lambda 匿名函数 对于单行函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁; 对于不需...
    99+
    2023-10-27
    python 开发语言
  • python基础之匿名函数详解
    目录1.匿名函数介绍2.语法3.使用场景4.匿名函数和普通函数的对比5.匿名函数的多种形式6.lambda 作为一个参数传递7. lambda函数与python内置函数配合使用8.l...
    99+
    2024-04-02
  • python基础之匿名函数介绍
    目录前言一、创建一个匿名函数:二、创建一个带参数的匿名函数三、求两个数的中的最大的值四、练习题:前言 在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿...
    99+
    2024-04-02
  • Python函数式编程的返回函数与匿名函数怎么定义
    本篇内容介绍了“Python函数式编程的返回函数与匿名函数怎么定义”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!返回函数所谓返回函数,顾名思...
    99+
    2023-07-06
  • python基础之函数的定义和调用
    # 第一题 # 写函数,接受n个数字,求这些参数数字的和 def sumFunc(*args): # 处理接受的数据 result=0 for item...
    99+
    2024-04-02
  • python函数和python匿名函数lambda详解
    目录1. python函数1.1 函数的作用1.2 函数定义1.3 函数调用1.4 函数的参数1.4.1 参数的传递1.4.2 参数类型1.4.2.1 位置参数(必备参数)1.4.2...
    99+
    2024-04-02
  • python之高阶函数和匿名函数
    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 1 def func(x): 2 return x*x 3 4 r = ma...
    99+
    2023-01-30
    函数 高阶 python
  • PHP 数组高级排序:自定义比较器和 匿名函数
    在 php 中,按自定义顺序对数组排序有两种方式:自定义比较器:实现 comparable 接口并指定两个对象的比较规则。匿名函数:创建无名函数作为自定义比较器,用于比较两个对象的标准。...
    99+
    2024-04-27
    php 排序
  • Python-3 匿名函数
    #1、匿名函数计算a+b的值 func = lambda a,b:a+b result = func(2,3) #传入实参2和3,计算a+b,自动返回a+b的值。与def ...
    99+
    2023-01-31
    函数 Python
  • Python技巧匿名函数、回调函数和高阶函数
    目录1、定义匿名或内联函数 2、在匿名函数中绑定变量的值 3、让带有n个参数的可调用对象以较少的参数调用 4、在回调函数中携带额外的状态 1、定义匿名或内联函数 如果我们想提供一个...
    99+
    2024-04-02
  • Python匿名函数/排序函数/过滤函数
    一. lamda匿名函数   为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n**n print(f(...
    99+
    2023-01-31
    函数 Python
  • 匿名函数
    目录 有名函数(掌握) 匿名函数(掌握) 与内置函数联用(掌握) 我们之前定的函数都是有名函数,它是基于函数名使用。 d...
    99+
    2023-01-31
    函数
  • go语言的匿名函数如何定义
    这篇文章主要讲解了“go语言的匿名函数如何定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“go语言的匿名函数如何定义”吧!go语言的匿名函数定义方法是“func(参数列表)(返回参数列表)...
    99+
    2023-07-04
  • javascript中怎么定义一个匿名函数
    这篇“javascript中怎么定义一个匿名函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • python-3_函数_匿名函数_正则_
    L=['a','b','c','d']for (offset,item) in enumerate(L):    print offset,item打印的结果:0 a1 b2 c4 d迭代器:for i in range(100):    ...
    99+
    2023-01-31
    函数 正则 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作