本部分详细讲解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 中常见的函数类型,每种类型都有不同的特点和用途。
欢迎收藏、点赞、和转发、你的阅读是我的前进动力。