Python语言基础
Python语言进阶
Python数据结构

Python 函数

搞懂Python函数的定义与调用
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

函数定义

你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
    # 实现特定功能的多行代码
    [return [返回值]]
其中,用 [] 括起来的为可选择部分,即可以使用,也可以省略。
不建议读者使用 a、b、c 这类简单的标识符作为函数名,函数名最好能够体现出该函数的功能。 形参列表:设置该函数可以接收多少个参数,多个参数之间用逗号( , )分隔。 [return [返回值] ]:整体作为函数的可选参参数,用于设置该函数的返回值。也就是说,一个函数,可以用返回值,也可以没有返回值。
注意:在创建函数时,即使函数不需要参数,也必须保留一对空的“()”。
下面是函数不带参数的实例:
def animal():
    animal = ["cow","dog","cat"]
    return animal
下面是函数带参数的实例:
def animal(param):
    if (param == "cow"):
        print("param is cow")

函数调用

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
def animal(param):
    if (param == "cow"):
        print("param is cow")

animal("cow");
执行结果:
param is cow

参数

必需参数 关键字参数 默认参数 不定长参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用函数,你必须传入一个参数,像上面调用animal()函数一样不然会出现语法错误:
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
def animal(param1,param2):
    if (param1 == "cow"):
        print("param1 is cow")

animal(param2="cat",param1="cow");
执行结果:
param1 is cow
调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 param1 参数,则使用默认值:
def animal(param="cow"):
    if (param == "cow"):
        print("param is cow")

animal();
执行结果:
param is cow
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。基本语法如下:
def functionname([formal_args,] *var_args_tuple ):
    function_suite
    return ([expression])
def animal(arg1, *vartuple):
    print(arg1)
    print(vartuple)

animal("cow","cat","dog","lion");
执行结果:
cow
('cat', 'dog', 'lion')
还有一种就是参数带两个星号 **基本语法如下:
def functionname([formal_args,] **var_args_dict ):
    function_suite
    return ([expression])
加了两个星号 ** 的参数会以字典的形式导入。
def animal(arg1, **vardict):
    print(arg1)
    print(vardict)

animal("cow",a="cat",b="dog",c="lion");
执行结果:
cow
{'a': 'cat', 'b': 'dog', 'c': 'lion'}
注意:声明函数时,参数中星号 * 可以单独出现,单独出现星号 * 后的参数必须用关键字传入。

匿名函数

python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
lambda 只是一个表达式,函数体比 def 简单很多。 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
如下实例:
sum = lambda arg1, arg2: arg1 + arg2

print("相加后的值为 : ", sum( 20, 20 ))
print("相加后的值为 : ", sum( 10, 20 ))
执行结果:
相加后的值为 : 40
相加后的值为 : 30

return语句

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,以下实例演示了 return 语句的用法:
如下实例:
def animal():
    animal = ["cow","dog","cat"]
    return animal

# 调用animal函数>
ret = animal()
print("函数 : ", animal())
执行结果:
函数 : ['cow', 'dog', 'cat']

递归调用

递归是指函数能够调用自身,递归是一种常见的数学和编程概念。
如下实例:
def recursion(k):
    if (k > 0):
        result = k + recursion(k-1)
        print(result)
    else:
        result = 0
    return result
recursion(6)
执行结果:
1
3
6
10
15
21
昵称: 邮箱:
点点滴滴记录者 2020-09-21

Python中的函数是什么?

在Python中,函数是一组执行特定任务的相关语句。

函数有助于将我们的程序分解为较小的模块化块。随着我们的计划越来越大,功能使其变得更加有组织和可管理。

此外,它避免了重复,并使代码可重复使用。

如何在python中调用函数?

定义函数后,我们可以从另一个函数,程序甚至Python提示符中调用它。要调用函数,我们只需键入带有适当参数的函数名称即可。

Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4