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

Python函数:如何传递参数给函数

发布时间:2023-06-03 03:31:23

Python是一种流行的高级编程语言,它在很多方面都非常强大。它具有多种特性,其中最基本的就是函数。函数是一种可重用的代码块,在程序进程中执行特定任务,在这个过程中可以接收传递给他的参数。理解如何传递参数给Python函数是编写高效,可读性好和可维护的代码的关键。

什么是函数?

在Python中,函数是一组被组合在单个块中并可以重复使用的指令语句,我们可以为它们提供一个名称。Python中的函数可以有输入(参数)和输出。一个函数的基本结构是:

def 函数名称(参数1,参数2,参数3,...):
     执行代码块
     return 返回值

当程序运行到函数名时,它会跳转到该函数中的代码块并执行其中的指令。当执行完成后,返回值将返回到程序的主体中。

Python中有许多内置的函数,像print()和len()。我们可以创建自己的函数。为此,我们需要像下面这样定义一个函数:

def say_hello(name):
    print(f"Hello {name}!")

- say_hello() 是函数名。

- 在括号里面的 **name** 是一个参数,也称为输入或者函数的输入。

- 冒号(:)指示函数定义的开头。

- Python函数的主体放在一个四个空格的缩进块中,表示是属于定义函数say_hello的子集。

- 在函数see_hello中定义的 指令语句就是我们要用print()函数输出的打招呼信息。

这个函数接受一个输入,即name,并创建打招呼信息。我们可以调用函数say_hello()并传递字符串“John”作为参数来执行函数:

say_hello("John")

这样就可以输出Hello John!。

传递参数:位置参数和关键字参数

在Python中,要使用函数,我们需要将数值传递给该函数。Python中的参数分为两种类型:位置参数和关键字参数。

位置参数是必需的,这意味着你必须按照正确的顺序来传递参数给函数。以下是位置参数的一个例子:

def sum_nums(num1, num2):
    total = num1 + num2
    return total

sum_nums(5, 10)

在上面的代码中,sum_nums()函数接受两个位置参数,即:num1num2。在函数中,我们将这两个参数相加并返回他们的总和。

在此例中,调用函数sum_nums()并将数字5和10作为参数传递给函数。由于它们在顺序上准确地对应函数定义中的参数,因此Python会将它们视为位置参数,并将它们传递给函数。在函数中,变量num1将被设置为值5,变量num2将被设置为值10。作为结果,函数返回15,也就是它们的和。

有时候,我们可能需要传递数据给函数时不一定要按照函数定义中参数的顺序。这时,我们就可以使用关键字参数。

关键字参数允许我们将参数作为键值对传递给函数。如,上面sum_nums()函数示例中,我们可以通过关键字参数的方式来调用函数:

sum_nums(num2=5, num1=10)

在这个例子中,我们通过在调用sum_nums()中传递关键字参数,通过参数名来指定不同的参数顺序。将num2的值设置为5,并将num1的值设置为10。作为结果,函数仍然返回15。

默认参数

Python中,我们还可以定义函数,参数默认值已经被设置。这样,我们就可以在不提供默认值的情况下调用函数。默认值在函数的定义过程中使用“=”符号来定义,如下例所示:

def say_hi(name="user"):
    print(f"Hello {name}!")

say_hi()

在这段代码中,函数say_hi()中的参数名称设置为name,并使用一个默认值"user"。这意味着如果我们不传递任何值给函数,它将输出"Hello user!",而不是引发异常。默认参数使代码更加简洁和易于维护,并允许调用者更轻松地使用函数。

不定长参数

如果我们不知道将传递多少个参数给函数,那么就可以使用Python的不定长参数(可变参数)。

在Python中,有两种不定长参数:*args和**kwargs。使用*args时,我们可以传递一个可变数量的位置参数给函数;使用**kwargs时,我们可以传递一个可变数量的关键字参数给函数。

例如:

def multiply(nums):
    total = nums[0]
    for num in nums[1:]:
        total *= num
    return total

nums = [2, 3, 4]
print(multiply(nums))

在上面的示例中,我们在提供multiply()函数的参数时将数字234组成的列表传递给该函数。该函数将计算所有数字的乘积,并返回该乘积作为结果。但是在函数内部,我们需要使用列表中的索引来提取参数列表。这种方法太死板,不够灵活。因此我们可以使用不定长参数函数,在改进之后的代码中,Python实际上会将这个数字列表打散,并按单独的数字将它们传递给函数,如下面的修改后的示例所示:

def multiply(*nums):
    total = nums[0]
    for num in nums[1:]:
        total *= num
    return total

print(multiply(2, 3, 4))

在这个例子中,乘积相同,我们只把参数从一个数组改为了使用不定长参数*num。

在不定长参数的函数中,我们需要循环检查nums的值,以获取不断变换的数字。

总结

函数是一种非常有用的编程工具,几乎用于所有编程任务。理解如何传递参数是任何语言中创造高效,可维护和可读性强代码的关键因素之一。在Python中,我们可以使用不同类型的参数,包括位置参数,关键字参数,默认参数和不定长参数。当我们熟练使用Python的参数,我们就可以编写出更加灵活和适合多种需求的程序。