欢迎访问宙启技术站
智能推送

如何定义Python函数并调用?

发布时间:2023-06-13 20:05:46

Python中的函数是一种可以重复使用的代码块,又称子程序或过程。它们被设计用来完成一个特定的任务,并且能够被统一地调用,以便在程序中模块化的使用。在Python语言中,任何可调用的对象都被认为是一个函数,可以由def语句来定义。

定义一个Python函数

Python的函数定义以def关键字开始,并以冒号(:)结尾。函数定义的一般形式如下:

def function_name(parameters):
    """docstring"""
    statement(s)

在这个结构中,函数名称必须为合法的变量名称,任何参数不需要事先定义类型;在函数的主体中需要写明具体执行的操作。doc字符存在的主要目的是可以使用Python文档工具自动生成函数的文档(或帮助信息),它是可选的,需要明确使用文字来说明函数的作用。

这是一个简单的函数定义示例:

def greet(name):
    """
    This function greets to
    the person passed in as
    parameter
    """
    print("Hello, " + name + ". Good morning!")

在这个函数定义中,greet是函数的名称,参数name是函数接收的输入,print语句是函数需要执行的操作。这个函数只接收一个参数,并打印一句问候语。

调用Python函数

函数定义完成后,我们可以使用函数名和需要的参数对该函数进行调用。Python中函数的调用使用该函数名称后跟着括 号(),括号内填入需要传入函数的参数,如果函数只有一个默认参数的话,则括号可以省略。如果有多个参数,则用逗号隔开。

这是我们调用上面定义的函数的方式:

greet('Paul')

上面的代码调用greet()函数,并将字符串'Paul' 作为参数传入函数中。函数将处理传入的参数,并输出Hello, Paul. Good morning!。

下面显示了一些更多的函数调用示例,其中传递的参数类型可能会有所不同。

1.调用不带任何参数的函数

def greet():
    """
    This function greets to
    the person passed in as
    parameter
    """
    print("Hello, Good morning!")

greet()

输出:

Hello, Good morning!

定义了一个不带参数的函数,并在函数体中打印问候语。 使用greet()函数名来调用函数并执行操作,由于该函数不需要任何参数执行该函数时即可生效,并输出Hello, Good morning!的问候语。

2.调用具有多个参数的函数

def greet(name, msg):
    """
    This function greets to
    the person passed in as
    parameter
    """
    print("Hello, " + name + '. ' + msg)

greet("Heysiong", "Good morning!")

输出:

Hello, Heysiong. Good morning!

定义了一共具有两个参数的函数,并在函数体中打印问候语。函数调用时传入两个参数name和msg, 并且函数体中可以从参数列表直接获取。程序执行完成后输出Hello, Heysiong. Good morning!的问候语。

3.调用具有默认参数的函数

定义函数时可以指定一个默认值,这样函数调用时,在没有传入参数时,也不会报错,并且会将默认值赋值给形参变量。 这是另一个示例:

def greet(name,msg='Good morning!'):
    """
    This function greets to
    the person passed in as
    parameter
    """
    print("Hello, " + name + '. ' + msg)

#greet函数可以有一个默认msg值

greet("John")
greet("Heysiong", "Good evening!")

输出:

Hello, John. Good morning!

Hello, Heysiong. Good evening!

定义了一个具有默认参数值的函数,并在函数体中打印问候语。如果调用该函数时未传入msg的值,则使用函数定义时默认的值Good morning! 来替代。由此可以看出,调用greet("John")时,不会传入msg参数的值,故程序会使用默认的好的上午(Good morning!)作为该参数的值。

4.调用具有可变参数的函数

Python函数可以接受数量不定的参数,这些参数前加一个*即可。这些参数被统一放在一个元组中,并传递给函数的形参变量。此时程序中可以使用for循环来遍历这个元组,从而操作每一个变量。

这是一个示例:

def greet(*names):
    """
    This function greets all
    the person in the names tuple.
    """
    for name in names:
        print("Hello, "+name)
 
greet("Monica", "Luke", "Steve", "Jordie")

输出:

Hello, Monica

Hello, Luke

Hello, Steve

Hello, Jordie

这个函数可以接受任意数量的参数,并将所有这些参数作为元组names传入。在函数体中,使用for循环遍历这个元组并打印问候语。

总结

Python函数可以像Java、C语言中的函数一样定义,并使用def关键词定义。调用函数时需要给出函数名和传递到该函数中的参数列表,Python在函数的执行时会自动解析这个传递的参数列表, 处理完毕之后返回对应的结果。除此之外,Python还支持函数默认参数、可变参数等语法,这样能够使编程变得更加简洁,更加高效。