全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
995 0
2020-12-22
面向数据科学初学者的Python函数简介
Python是一种真正出色的编程语言。Python的灵活性使其成为数据科学领域中使用最广泛的编程语言。
但是对于初学者,尤其是没有编程背景的初学者来说,可能很难掌握。最复杂的概念之一-Python函数。
函数是执行特定任务的一组逻辑分组的语句。我们要求函数一次又一次地避免使用同一组代码,因为代码的长度会增加,因此可重用性也会下降。
本质上,Python函数的最大优点是代码可重用性。
Python样式指南特色图片
使用Python函数还有其他一些优点:
避免重复代码
提高程序可读性
将复杂的问题分解为简单的问题
减少出错的机会
通过使用函数,修改程序变得更加容易
因此,当我们学习机器学习和数据科学时,我们将知道所使用的算法不过是函数。在本文中,我们将学习Python函数的基础知识以及如何使用它们。
目录
Python函数的类型
功能参数
退货声明
争论
变量类型
递归函数
Lambda函数
Filter()函数
Map()函数
Reduce()函数
Python函数的类型
Python中有两种类型的函数。
1.内置功能或预定义功能
这些是Python已经定义的函数。例如:id(),type(),print()等。
2.用户定义的功能或自定义功能
这些是用户定义的功能,以简化操作并避免重复代码。
定义函数的语法为:
Def function_name(参数):
“ Doc字符串”
身体
返回值
在这里,def关键字是必需的,而return是可选的。这是一个例子:
Def wish():
打印(“你好晚上好”)
现在我们可以将其称为:
希望()
每当我们这样做时,都会打印“你好晚上好”。
Python函数参数
让我们用一个简单的例子来理解这一点。
编写一个函数,以学生的姓名为输入并按名称打印愿望信息。因此,这里有一件事很清楚–必须在()内提供参数。
Def wish(name):
打印(“您好”,名称,“晚上好”)
现在,如果函数具有参数或参数,则无法调用wish(),因为会得到类型错误。
在这里,我们需要提供值,因此我们可以像这样简单地调用它:
愿望(ABC)
Python返回语句
一个函数可以返回一些值。因此,根据我们提供的逻辑,我们将获得一些结果,而该结果就是回报。
def add(a,b):
总和= a + b
返还金额
加(10
我们没有要求返回值的总和,但是Python不会给出错误,因为它不是强制采用返回值的。
但是,由于未调用return函数,因此不会获得任何值。在这里,我们可以像返回值并将其保存在变量中一样执行它,然后输出输出:
结果= add(10,20)
打印(结果)
或者我们可以这样做:
打印(add(10,20))
还有另外一种情况。假设我们做了一个功能:
def f1():
打印(“ Hello”)
x = f1()
print(“返回值为“,x)
现在,问题是我们没有在代码中返回任何值,因此我们可以将值保留在x中,因为我们在返回某个值时会执行此操作。
请记住,Python默认返回值None。
还有一件事,我们讨论的return语句是可选的,但是如果我们要存储值并在函数之外再次使用它,则可以使用return函数。
从函数返回多个值
Python函数可以返回多个值。
Def sum_sub(a,b):
总和= a + b
子= ab
返回总和
因此,要执行此代码,我们应将其键入为:
x,y = sum_sub(20,10)
打印(总和为x)
打印(减法是,y)
Python中的参数
Python中有几种类型的参数。让我们看看并理解什么是参数。
位置参数
让我们借助示例了解这一点:
Def sub(a,b):
打印(ab)
子(200
在这里,a = 200,b =100。由于我们已经分配了这些位置,因此我们知道这一点。因此,在位置论证中,顺序很重要。当我们更改顺序时,结果也会更改。
同样,参数的数量也应该相同。
关键字参数
Def sub(a,b):
打印(ab)
子(200
子(a = 200,b = 100)
在这里,我们通过变量给出值,因此定位无关紧要。但是,是的,论点的数量在这里也很重要。
默认参数
这些是在我们实际定义参数但未传递参数时应用的参数。
因此,让我们了解一下:
Def身份(名称):
打印(“ Hello your name is”,姓名)
身份()
正如我们定义了自变量,但未传递自变量,这将导致位置错误。如果我们需要避免这种情况,我们可以这样做:
Def身份(名称=“来宾”):
打印(“ Hello your name is”,姓名)
身份()
现在它将执行,并将Guest作为默认值。
可变长度参数
它可以接受任意数量的参数:
f1(* n)
*-> n个变长参数
它也可以有0个参数。我们可以使用可变长度参数,例如:
def f1(* n):
打印(“可变长度参数”)
f1()
f1(10)
f2(10
在内部,它们全部都保存为元组,因此我们可以访问它们。
总结一下,我们可以同时使用位置参数和关键字参数。但是首先,我们必须采用位置参数,然后才能采用关键字参数。
默认与非默认参数
如果我们不传递任何值,则仅考虑默认值。在默认参数之后,我们不应使用非默认参数,即默认参数应为最后一个参数。
变量类型
变量有两种类型:全局变量和局部变量。
全局变量始终在函数外部,并且可以由所有函数访问,而局部变量在特定函数中定义。
在Python中,我们可以使全局变量和局部变量具有相同的名称。
让我们在一个示例的帮助下进行查看,然后通过在另一个功能下使用一个功能来举例说明。
a = 10#全局变量
def f1():
a = 20#局部变量
打印(a)
f2():
打印(a)
因此,如果我们将输出设置为:
f1()
f2()
然后,我们只需要简单地了解第一种情况,即在f1函数中a = 20,因此输出将为20,而与全局变量无关。在f2中,输出将为10,因为在f2中未定义局部变量,因此它将采用全局变量的值。
但是现在,让我们假设我们希望f1函数值“ a”保持全局,因此我们需要显式放置一个全局关键字:
a = 10
def f1():
全球一
a = 20
打印(a)
f2():
打印(a)
现在,两者的输出均为20,因为当我们明确定义全局值时,其全局值已更改为20。
递归函数
顾名思义,就是函数本身。我们可以编写简洁的代码来帮助解决复杂的问题。这是一个例子:
Def阶乘(n):
如果n == 0:
结果= 1
其他:
结果= n *阶乘(n-1)
返回结果
*最大递归深度为995倍,可以调用同一函数。
Lambda函数
这些是没有名称的功能,或者可以称为无名称功能或匿名功能。它们通常用于立即使用或一次性使用,不需要再次使用。
Lambda输入参数:表达式
因此,为了找出数字的平方:
Lambda n:n * n
这是一个简单的例子:
s = lambda a,b:a + b
打印(s(2
通过使用filter()函数来缩短代码
过滤器(功能,顺序)
这里,一个参数是过滤器函数中的函数本身。
假设我们希望有一个从0到10的列表具有偶数。现在,我们的过滤器功能格式为:
过滤器(功能,顺序)
筛选器函数中使用的Function参数用于验证条件是否为true。如果为true,则将打印序列参数,如果为false,则不会打印该参数。
l = [0,1,2,3,4,5,5,6,7
Def iseven(n):
如果n%2 == 0:
返回True:
其他:
返回假
l1 =过滤器(iseven,l)
但是我们需要更改一件事–默认情况下,filter的返回类型是filter对象,因此我们需要将其类型转换为列表。
l1 =列表(过滤器(iseven,l))
打印(l1)
Map()函数理论
对于每个序列,应用一些函数并生成新值。例如,假设我们有l = [1
因此它将具有新的值1、4、9等。
Def squareit(n):
返回n * n
l1 = list(map(squareit,l))
打印(l1)
我们也可以将其用于多个序列。
Reduce()函数
此处,如果有10个输入值,则输出为10或小于10。
在reduce函数中,无论元素数量如何,元素序列都变为1。
l = [10,20,30,40,50]
减少(lambda x,y:x + y,l)
打印(减少)
它将添加列表的所有元素并给出一个输出。
* Reduce函数不是Python内置函数,因此需要从functools模块显式导入:
从functools进口减少
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群