您的位置:

Python函数定义与调用

一、定义和调用函数

实现单一的功能或任务,通常可定义一个函数。定义函数时需要使用关键字def,后面跟随函数名和圆括号,括号内可以定义参数。函数的主体部分需要使用冒号和缩进来区分。例如:

def hello():
    print("Hello world!")
    
hello()

上面代码中,hello()函数定义了一个没有参数的函数,函数体中的语句将会在函数调用时执行,并输出"Hello world!"字符串。

二、函数的参数

函数的参数可分为两种:必选参数和关键字参数。

必选参数:必选参数是指必须要传入正确的参数,否则函数将无法正常工作。例如:

def add(x, y):
    z = x + y
    print(z)

add(5, 3)

上例中,x和y就是必选参数,add(5, 3)函数调用时,将5、3传递给了函数参数x和y,函数计算x和y之和,并输出结果。

关键字参数:关键字参数为函数提供了更强的可读性和可维护性,可以使调用方更加明确地知道函数的参数类型。例如:

def divide(a, b):
    c = a / b
    print(c)

divide(b=3, a=9)

其中,a和b都是关键字参数,divide(b=3, a=9)函数调用时,参数的传递顺序不影响函数的计算结果。

三、函数的返回值

Python中的函数默认返回None值,但是我们可以使用关键字return来指定函数的返回值。例如:

def add(x, y):
    z = x + y
    return z

result = add(5, 3)    
print(result)

在上例中,add()函数通过return返回计算结果,之后,将计算结果赋值给变量result,并输出result的值。

四、默认参数和可变参数

Python函数可以有默认参数,这些参数在函数定义时指定一个默认值,并且在调用函数时不传递该参数。例如:

def greeting(name="Python"):
    print("Hello,", name)

greeting()
greeting("world")

在上例中,greeting()调用时未传递参数,因此使用默认值"Python",其输出结果为"Hello, Python"。greeting("world")函数调用时传递了"wold"参数,因此输出结果为"Hello, world"。

Python还有可变参数,这些参数在函数定义时使用*prefix表示,可以通过名字或位置改变传递参数的方式。例如:

def concatenate(*words):
    result = ""
    for word in words:
        result += word
    return result

print(concatenate("Hello", " ", "World"))
print(concatenate("I", " ", "am", " ", "a", " ", "Python", " ", "developer."))

上述代码中,函数concatenate()使用可变参数*words作为函数参数,通过for循环将这些参数进行拼接。函数调用时,可以传递任意数量的参数,将这些参数连接形成一个单一的字符串并输出结果。