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 中常见的函数类型,每种类型都有不同的特点和用途。

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

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值