python疑难杂症(10)---Python函数def的定义分类,包括内置函数、外置函数、匿名函数、闭包函数、生成器函数等

本部分详细讲解Python函数的定义、常见的函数类型,尤其是特色函数包括内置函数、外置函数、匿名函数、闭包函数、生成器函数等以及用法。后续将对这类函数重点讲解使用方法。

函数定义:

函数是大多数编程语言使用的一个概念,函数是一段具有一定功能程序体,可以被反复多次调用。函数包含以下特征:

1、函数名:用于标识函数的的字符串,并可以通过该函数名调用执行函数,实现其功能,在python中,使用def 开头,后面跟 ( 括号和参数。以:结束
如下:

def outhello(string1):

print( f'打印的字符串是:{ string1}')

outhello('python hello!')

2、参数:输入给函数的值,这个是函数接收外部数据的接口,在函数内部可以使用参数进行操作或计算。

3、函数体:是一段可以执行的代码块。在函数体中可以进行各种操作、计算等。

4、返回值:函数可以返回处理结果,供调用者使用,是函数向外输出处理内容的接口,在python中通过return + 返回内容,结束函数的运行并返回后面的结果。当然函数也可以不返回内容,即return 后面为空。

Python函数类型

Python作为广泛使用的语言,其函数中有许多自己独有的函数类型特性。

自定义函数:

像上面那种就是比较普通的自定义函数,对于重复的功能,通过函数定义,减少代码工作量。

内置函数:

内置函数是Python 提供了可以直接使用,不需要使用import导入模块来装入内存的,如

print():用于将内容输出到标准输出(通常是控制台).

len():用于返回对象的长度或元素个数,例如字符串的字符数、列表的元素个数等.

type():用于返回对象的类型.

int():用于将一个数值或字符串转换为整数.

float():用于将一个数值或字符串转换为浮点数.

str():用于将对象转换为字符串.

list():用于将可迭代对象转换为列表.

tuple():用于将可迭代对象转换为元组.

dict():用于创建字典对象.

set():用于创建集合对象.

range():用于生成一个指定范围的数字序列.

input():用于从用户处获取输入.

内置函数,python有200多个,常用的有70个左右,具体个数因版本而已,越往后越多。

外置函数:

python的外置函数是指需要通过导入模块,才能调用的函数。python语言之所以广泛使用,是因为有着丰富的外置功能模块,每个模块可以实现一个主题的功能,而里面又包含很多函数供调用,例如pandas、numpy、string等

例如模块pandas中包含函数

data.shape # 行数列数

data.dtypes # 所有列的数据类型

data['id'].dtype # 某一列的数据类型

data.ndim # 数据维度

data.index # 行索引

data.columns # 列索引

data.values # 对象值

其中dada为pd.DataFrame的数据类型。

又如:

import string

type(string)

str_func = [i for i in dir(string) if not i.startswith('_')]

print(str_func)

print(len(str_func))

输出:['Formatter', 'Template', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']

12

string模块中共有12个外置函数。

匿名函数

匿名函数是 lambda 表达式,是用于一次性的简单函数。例如:

lambda arg: expression

,其中, arg是函数的参数,可以是一个或多个;expression是函数的返回值,通常是一个简单的表达式,调用时,作为一个整体,首先将参数arg带入expression表达式,计算结果并返回。

num1 = lambda x, y: x * y

result1 = num1 (3, 5)

print(result1) # 输出 15

Lambda函数可以用于对列表中的每个元素进行操作:

testlist = [1, 2, 3,]

squlist = list(map(lambda x: x**2, testlist))

print(squlist) # 输出:[1, 4, 9]

Lambda函数通常与其他函数(例如map()、filter()等)一起使用,以提供简洁的操作,减少代码量。

闭包函数

闭包函数是指在一个函数内部定义了另一个函数,并且内部函数可以访问外部函数的变量。这种函数形式可以用来创建一些特定的函数,例如函数工厂或者装饰器。

def aaa(x):

def bbb(y):

return x * y

return bbb

ride1= aaa(6)

result = ride1(9)

print (result)

输出54

此处是闭包函数,也是因为函数返回值不只是具体内容,也可以是函数的名称,此处就是返回内容是函数的名称,后面依照函数格式调用。这个以后在详细说明。

生成器函数

生成器函数使用 yield 关键字来定义,可以通过迭代器的方式逐步生成结果,而不是一次性生成所有结果。生成器函数不是立马生成所有数据,而是到需要数据的时候在生成,节省内存,能够记录状态 并通过next()函数,访问下一个状态。具备可迭代特性, 函数中包含yield语句,这个函数的执行结构就是"生成器"。

例如:

def fibonacci():

a, b = 0, 1

while True:

yield a

a, b = b, a + b

fib = fibonacci()

print(next(fib)) # 输出 0

print(next(fib)) # 输出 1

print(next(fib)) # 输出 1

这些是 Python 中常见的函数类型,每种类型都有不同的特点和用途。

欢迎收藏、点赞、和转发、你的阅读是我的前进动力。

相关推荐
吃什么芹菜卷7 分钟前
深度学习:词嵌入embedding和Word2Vec
人工智能·算法·机器学习
计算机源码社13 分钟前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
汤兰月19 分钟前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式
chnyi6_ya29 分钟前
论文笔记:Online Class-Incremental Continual Learning with Adversarial Shapley Value
论文阅读·人工智能
中杯可乐多加冰30 分钟前
【AI驱动TDSQL-C Serverless数据库技术实战】 AI电商数据分析系统——探索Text2SQL下AI驱动代码进行实际业务
c语言·人工智能·serverless·tdsql·腾讯云数据库
西柚与蓝莓2 小时前
【开源开放体系总结】
python
萱仔学习自我记录3 小时前
PEFT库和transformers库在NLP大模型中的使用和常用方法详解
人工智能·机器学习
hsling松子5 小时前
使用PaddleHub智能生成,献上浓情国庆福
人工智能·算法·机器学习·语言模型·paddlepaddle
belldeep6 小时前
python:reportlab 将多个图片合并成一个PDF文件
python·pdf·reportlab
正在走向自律6 小时前
机器学习框架
人工智能·机器学习