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

Python函数的基本定义语法及参数

发布时间:2023-05-29 01:33:55

Python是一种高级编程语言,支持面向对象编程和函数式编程。函数是Python编程中最基本的组成部分之一。在Python中,函数是一段可重用的代码块,在程序中可被多次调用。函数可以被定义为一组语句块,这些语句块可以接受输入,并且可以返回输出。Python的函数定义语法非常简单,下面我们就来详细介绍一下。

函数的定义语法

Python中的函数定义可以使用def语句来完成,具体格式如下:

def function_name(parameters):
    """docstring"""
    function_body
    return [expression]

其中,def表示定义函数,function_name为函数名,parameters为函数形参,可选参数也可不给出,如果要给出多个参数需要使用逗号进行分隔,而函数内容需要写在“:”之后的缩进语句块中。若返回值则使用return语句进行返回,否则可以省略。函数注释可以放在函数体之前,用三个引号包围的字符串。

代码示例:

def add(a, b):
    """This function adds two numbers"""
    result = a + b
    return result

以上代码定义了一个名为add的函数,用于计算两个数字的和,并返回结果。函数接收两个参数ab,并在函数体中将它们相加,通过return语句返回了结果。

函数的参数

在Python中函数的参数分为:位置参数、关键字参数、缺省值参数、不定长参数。

1.位置参数

位置参数是最常见和常用的参数类型,是必须传递给函数的参数,按照函数声明时的参数位置进行传递,且数量必须一一对应。

def power(x, n):
    return x**n

以上代码定义了一个名为power的函数,用于计算x的n次方。该函数接收两个参数,分别为$x$和$n$。这两个参数是位置参数,它们的顺序将决定在函数调用时如何传递参数。

代码示例:

>>> power(2, 3)
8

在上面的例子中,当调用power(2, 3)时,参数2会被赋值给$x$变量,参数3会被赋值给$n$变量。因此,函数会返回2的3次方$I.e.$ 8。

2.关键字参数

关键字参数依赖于参数名称传递参数,将实参的值与形参一一匹配。关键字参数可以对函数的传递方式进行灵活操作。

def say_hi(name, age):
    print("Hi, my name is", name + ' and age is', age)

以上代码定义了一个名为say_hi的函数,它接受两个参数,一个字符串类型的表示姓名的参数name,一个整型类型的表示年龄的参数age

>>>say_hi(name="Alice", age=22)
Hi, my name is Alice and age is 22
>>>say_hi(age=22, name="Alice")
Hi, my name is Alice and age is 22

以上代码演示了如何使用关键字参数来调用函数。在这两个调用中,我们使用了不同的参数顺序进行调用。

3.缺省值参数

缺省值参数是一种特殊的参数类型,允许定义可缺省的参数。若调用函数时不提供参数,则该参数将采用默认的值。缺省值参数可以在函数定义时使用等号进行赋值,赋值后该参数将被视为可选参数,若用户未提供缺省参数值,则会采用该默认值作为参数。

代码示例:

def say_hi(name, age=21):
    print("Hi, my name is", name + ' and age is', age)

以上代码定义了一个名为say_hi的函数,与之前不同的是,函数的第二个参数age现在被赋予了默认值,如果调用时未传递参数,age将默认为21

>>>say_hi(name="Bob")
Hi, my name is Bob and age is 21
>>>say_hi(name="Alice", age=22)
Hi, my name is Alice and age is 22

在上面的两个调用中, 个调用中只传递了一个参数name,因为age参数没有被传递,所以其使用默认值21;而第二个调用中,age参数被传递了一个值22,因此函数输出为22

4.不定长参数

Python还支持不定长参数的函数定义方式,包括如下两种:

1)*args:用来处理非键值对可变参数列表,可以视为元组类型;

def add(*args):
    sum = 0
    for i in args:
        sum += i
    return sum

以上代码定义了一个名为add的函数,它接受一个未知长度的参数列表。在函数中,我们使用了*args来处理可变参数,并将它们相加,最终返回结果。当调用该函数时,可以传递任意数量的参数。

>>>add(1, 2, 3)
6
>>>add(1, 2, 3, 4, 5)
15

在上面的例子中,我们调用了add函数,并传递了几个整数参数。这些参数被传递给add函数,并在函数中使用了*args来处理它们。在这种情况下,args被视为一个元组,在函数中可以像处理其他元组一样处理它。

2)**kwargs:用来处理键值对可变参数字典,可以视为字典类型。

def print_info(**kwargs):
    for key, value in kwargs.items():
        print("%s == %s" % (key, value))

以上代码定义了一个名为print_info的函数,它接受一个字典类型的参数列表,并打印出每个条目的键和值。在函数中,我们使用了**kwargs来处理可变参数字典。

>>>print_info(name='Alice', age=22, city='New York')
name == Alice
age == 22
city == New York

在上面的例子中,我们调用了print_info函数,并传递了一个字典作为参数。这些参数被传递给print_info函数,并在函数中使用了**kwargs来处理它们。在这种情况下,kwargs被视为一个字典,在函数中可以像处理其他字典一样处理它。

小结

本篇文章通过介绍Python函数的基本定义语法及参数,使读者了解到Python中函数的声明和参数的用法。有了这些基础知识,读者就可以开始编写自己的函数,并根据需要使用不同类型的参数。在Python编程中,了解函数声明和参数用法是必不可少的一步,它可以让你更好地理解Python的编程思想,并让你更有效的编写Python代码。