python自定义函数怎么用,python自定义函数名的命名规则
功能是有组织的、可重用的,并且是用于实现单个或相关功能的代码段。
函数可以提高应用程序的模块化和代码的重用率。你已经知道Python提供了很多内置函数,比如print()。但是你也可以创建你自己的函数,我们称之为自定义函数。
语法
Python函数是用def关键字定义的,一般格式如下:
定义函数名(参数):
.
功能体
.
功能的定义主要有以下几点:
Def:函数名:函数的名字,以后根据函数名调用函数。函数体:在函数中进行一系列的逻辑计算,如:发送邮件,计算[11,22,38,888,2]中的最大个数等.参数:为函数体提供数据返回值:函数执行后可以将数据返回给调用者。以上几点中,比较重要的是参数和返回值:
和其他高级语言:
1.在函数名的末尾声明一个冒号。
2.它不需要用花括号把语句块括起来,用TAB键缩进。
函数式编程最重要的是增强代码的可重用性和可读性。
示例:#定义一个函数
定义测试_a():
打印(“hello world”)
#呼叫功能
test_a()函数有三个不同的参数:
普通参数默认参数动态参数
test _ b(var 1,var2): #函数定义,参数,为用户提供接口。
打印(可变)
打印(var2)
Test_b(12,13) #函数调用,参数。
-
12
13
默认参数
函数传递参数的默认值
Test _ c (a,b=0): #第二个参数是b,默认参数。如果调用函数时没有传递值,则使用默认值。
打印(a,b)
Test_c(1) #不输入第二个变量也可以
当调用test_c(1,2) #时,在向B变量传入一个值后,将使用传入的值。
Test_c(a=10,b=20) #指定对应于传入参数的变量,该变量也成为位置参数。
-
1 0
1 2
10 20
动态参数具有以下特征:
1.您可以接收任何参数。
2.有两种动态参数*args和**kwargs,并且*args必须在**kwargs之前。
3.Sequence:位置参数,*args,默认参数,**kwargs,其中
*args:接收的值按位置传递,位置被组织成一个元组。
**kwargs:接收关键字传递的值以形成字典。
1.* args接收参数操作的示例
# *args:接受n个位置参数,并将其转换为元组。
定义测试_ d(*参数):
打印(参数)
test_d(1,2,3,4,5)
test_d(*[1,2,3,4,5]) # args=tuple([1,2,3,4,5])
-
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
# x接收一个值,*args接收其余的值,并将其作为元组返回。
定义测试(x,*参数):
打印(x)
打印(参数)
测试(1,2,3,4,5,6,7)
-
一个
(2, 3, 4, 5, 6, 7)
2.* * kwargs接收参数操作示例
# **kwargs:接受n个关键字参数并将其转换为字典的方法。
定义测试(* *夸脱):
印刷品(夸脱)
print(kwargs[name])
打印(夸脱[年龄])
#两种方法的执行结果是一样的。
测试(姓名=saneri ,年龄=18岁,性别=M )
#test(**{name:saneri , age:18})
-
{ 姓名:萨内里,年龄:18,性别: M}
萨内里
18
进一步操作。
# name按位置接收saneri,age接收34,kwargs接收N个关键字,转换成字典模式。
def test4(姓名,年龄=18,**kwargs):
打印(姓名)
打印(年龄)
印刷品(夸脱)
test4(saneri ,年龄=34,性别=M ,爱好=tesla )
-
萨内里
34
{ 性: M ,爱好:特斯拉 }
混搭。
定义记录器(来源):
打印(“来自% s“%源”)
def test_y(姓名,年龄=18,*args,**kwargs):
打印(姓名)
打印(年龄)
打印(参数)
印刷品(夸脱)
logger(“你好,我是logger源”)
test_y(saneri ,年龄=20,性别=M ,爱好=test )
-
萨内里
20
()
{ 性别: M ,爱好:测试 }
从你好,我是日志来源
如果*arg也需要接收参数,前面不能有默认参数,否则调用时会报错。
Def _ set (name,age,* args,* * kwargs): # * kwargs将把多个传入的参数转换成dict形式。
打印(姓名)
打印(年龄)
打印(参数)
印刷品(夸脱)
edu _集(萨内里,32, Python , CN ,性别=男性)
-
萨内里
32
( Python , CN )
{ 性别:男性 }
返回语句
return [expression]语句用于退出函数,并有选择地将表达式返回给调用者。不带参数值的return语句返回None。前面的例子都没有演示如何返回一个数值。下面的示例演示了return语句的用法:
定义总和(arg1,arg2):
#返回两个参数的和。
总计=arg1 arg2
打印(在函数中:,总计)
Return total #如果不写Return的返回值,那么函数外调用将返回None
#调用sum函数
total=sum(10,20)
打印(函数外部:,总计)
-
函数内:30
功能外:30
匿名函数
我们在传入函数的时候,有时候不需要显式定义函数,但是直接传入匿名函数更方便。(匿名函数没有函数名)匿名函数使用关键字lambda来定义普通函数和lambda函数的方法和区别。
# # # # # # # # # # # # # #普通函数# # # # # # # # #
#定义函数(正常方式)
定义乐趣(参数):
返回参数1
#执行职能
结果=乐趣(123)
# # # # # # # # # # # # # # # # # # ## # # # # # # # #
#定义函数(lambda表达式)
我的=arg:arg 1
#执行职能
result=my_lambda(123)
#lambda的存在意义是简单函数的简洁表达:
在Python中,对匿名函数的支持是有限的。还是以map()函数为例。计算f(x)=x2时,除了定义f(x)的一个函数外,还可以直接传入一个匿名函数:
列表(map(lambda x: x * x,[1,2,3,4,5,6,7,8,9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
#通过对比可以看出,匿名函数lambda x: x * x实际上是:
定义f(x):
返回x * x
#关键字lambda表示匿名函数,冒号前的X表示函数参数。
匿名函数有一个限制,就是只能有一个表达式,不需要写return。返回值是该表达式的结果。
功能是有组织的、可重用的,并且是用于实现单个或相关功能的代码段。
函数可以提高应用程序的模块化和代码的重用率。你已经知道Python提供了很多内置函数,比如print()。但是你也可以创建你自己的函数,我们称之为自定义函数。
语法
Python函数是用def关键字定义的,一般格式如下:
定义函数名(参数):
.
功能体
.
功能的定义主要有以下几点:
Def:函数名:函数的名字,以后根据函数名调用函数。函数体:在函数中进行一系列的逻辑计算,如:发送邮件,计算[11,22,38,888,2]中的最大个数等.参数:为函数体提供数据返回值:函数执行后可以将数据返回给调用者。以上几点中,比较重要的是参数和返回值:
和其他高级语言:
1.在函数名的末尾声明一个冒号。
2.它不需要用花括号把语句块括起来,用TAB键缩进。
函数式编程最重要的是增强代码的可重用性和可读性。
示例:#定义一个函数
定义测试_a():
打印(“hello world”)
#呼叫功能
test_a()函数有三个不同的参数:
普通参数默认参数动态参数
test _ b(var 1,var2): #函数定义,参数,为用户提供接口。
打印(可变)
打印(var2)
Test_b(12,13) #函数调用,参数。
-
12
13
默认参数
函数传递参数的默认值
Test _ c (a,b=0): #第二个参数是b,默认参数。如果调用函数时没有传递值,则使用默认值。
打印(a,b)
Test_c(1) #不输入第二个变量也可以
当调用test_c(1,2) #时,在向B变量传入一个值后,将使用传入的值。
Test_c(a=10,b=20) #指定对应于传入参数的变量,该变量也成为位置参数。
-
1 0
1 2
10 20
动态参数具有以下特征:
1.您可以接收任何参数。
2.有两种动态参数*args和**kwargs,并且*args必须在**kwargs之前。
3.Sequence:位置参数,*args,默认参数,**kwargs,其中
*args:接收的值按位置传递,位置被组织成一个元组。
**kwargs:接收关键字传递的值以形成字典。
1.* args接收参数操作的示例
# *args:接受n个位置参数,并将其转换为元组。
定义测试_ d(*参数):
打印(参数)
test_d(1,2,3,4,5)
test_d(*[1,2,3,4,5]) # args=tuple([1,2,3,4,5])
-
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
# x接收一个值,*args接收其余的值,并将其作为元组返回。
定义测试(x,*参数):
打印(x)
打印(参数)
测试(1,2,3,4,5,6,7)
-
一个
(2, 3, 4, 5, 6, 7)
2.* * kwargs接收参数操作示例
# **kwargs:接受n个关键字参数并将其转换为字典的方法。
定义测试(* *夸脱):
印刷品(夸脱)
print(kwargs[name])
打印(夸脱[年龄])
#两种写入方法的执行结果是相同的。
测试(姓名=saneri ,年龄=18岁,性别=M )
#test(**{name:saneri , age:18})
-
{ 姓名:萨内里,年龄:18,性别: M}
萨内里
18
进一步操作。
# name按位置接收saneri,age接收34,kwargs接收N个关键字,转换成字典模式。
def test4(姓名,年龄=18,**kwargs):
打印(姓名)
打印(年龄)
印刷品(夸脱)
test4(saneri ,年龄=34,性别=M ,爱好=tesla )
-
萨内里
34
{ 性: M ,爱好:特斯拉 }
混搭。
定义记录器(来源):
打印(“来自% s“%源”)
def test_y(姓名,年龄=18,*args,**kwargs):
打印(姓名)
打印(年龄)
打印(参数)
印刷品(夸脱)
logger(“你好,我是logger源”)
test_y(saneri ,年龄=20,性别=M ,爱好=test )
-
萨内里
20
()
{ 性别: M ,爱好:测试 }
从你好,我是日志来源
如果*arg也需要接收参数,前面不能有默认参数,否则调用时会报错。
Def _ set (name,age,* args,* * kwargs): # * kwargs将把多个传入的参数转换成dict形式。
打印(姓名)
打印(年龄)
打印(参数)
印刷品(夸脱)
edu _集(萨内里,32, Python , CN ,性别=男性)
-
萨内里
32
( Python , CN )
{ 性别:男性 }
返回语句
return [expression]语句用于退出函数,并有选择地将表达式返回给调用者。不带参数值的return语句返回None。前面的例子都没有演示如何返回一个数值。下面的示例演示了return语句的用法:
定义总和(arg1,arg2):
#返回两个参数的和。
总计=arg1 arg2
打印(在函数中:,总计)
Return total #如果不写Return的返回值,那么函数外调用将返回None
#调用sum函数
total=sum(10,20)
打印(函数外部:,总计)
-
函数内:30
功能外:30
匿名函数
我们在传入函数的时候,有时候不需要显式定义函数,但是直接传入匿名函数更方便。(匿名函数没有函数名)匿名函数使用关键字lambda来定义普通函数和lambda函数的方法和区别。
# # # # # # # # # # # # # #普通函数# # # # # # # # #
#定义函数(正常方式)
定义乐趣(参数):
返回参数1
#执行职能
结果=乐趣(123)
# # # # # # # # # # # # # # # # # # ## # # # # # # # #
#定义函数(lambda表达式)
我的=arg:arg 1
#执行职能
result=my_lambda(123)
#lambda的存在意义是简单函数的简洁表达:
在Python中,对匿名函数的支持是有限的。还是以map()函数为例。计算f(x)=x2时,除了定义f(x)的一个函数外,还可以直接传入一个匿名函数:
列表(map(lambda x: x * x,[1,2,3,4,5,6,7,8,9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
#通过对比可以看出,匿名函数lambda x: x * x实际上是:
定义f(x):
返回x * x
#关键字lambda表示匿名函数,冒号前的X表示函数参数。
匿名函数有一个限制,就是只能有一个表达式,不需要写return。返回值是该表达式的结果。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。