Python-函数(形参练习)

1. Python函数概述

Python是一种解释性语言,意味着Python程序可以立即运行,而无需编译器或其他繁琐的步骤。Python语言中最常用的代码块是函数(function),它允许我们将一些相关的操作封装在一起以供重复使用。

在Python中,函数的定义以“def”关键字开始,后面跟着函数名称和圆括号,括号内可以包含形式参数。函数名称和参数列表构成了函数头(header),并以冒号(:)结尾。函数体(body)中是一系列编写的Python语句,它们定义了函数的操作内容。

def function_name(parameter1, parameter2):

some code......

return result

2. Python函数中的形参

2.1 定义形参

Python中函数的形参(parameter)定义在函数的括号内,用逗号隔开。我们可以根据需要定义任意数量的参数,无参函数对应没有括号。

例如,以下示例定义的函数“add”需要两个参数:“a”和“b”:

def add(a, b):

return a + b

而以下示例定义的函数“hello”没有需要传入的参数,也可以称之为无参函数:

def hello():

print("Hello, World!")

2.2 函数中的默认值

当我们在定义函数时,可以为形参赋予默认值,从而在调用函数时不传入该参数时也能正常进行。这种默认值默认情况下将覆盖没有给出值的参数。

例如,在以下示例中,函数“multiply”包含两个参数和一个默认值。如果没有传入第一个参数,则使用默认值。

def multiply(a, b=5):

return a * b

在下面的调用语句中,函数被调用时只传递了一个参数,则使用默认值(b=5):

print(multiply(10))

结果输出50,等于传递的值10和默认值5的乘积。

2.3 参数传递方式

在Python中,参数传递方式有两种:传值和传引用。

传值是指传递的是变量的拷贝,函数在处理它们时不能修改原始变量的值。这些拷贝被称为形参或局部变量,它们只在函数中可用。

以下示例展示了传值的例子:

def add(a):

a = a + 2

return a

x = 5

print(add(x))

print(x)

在这个例子中,变量“x”的值为5,在调用函数“add”时,我们将值5传递给函数。但是,函数内部只是对传递进去的值进行了加2的操作,而并没有改变原始的变量值。

另一种参数传递方式是传引用,它将变量的引用(而不是拷贝)传递给函数。这意味着函数可以修改原始变量。

以下是一个传引用的例子:

def add(list):

list.append(3)

return list

mylist = [1, 2]

print(add(mylist))

print(mylist)

在这个例子中,变量“mylist”的值为[1, 2]。在调用函数“add”时,我们将引用传递给函数,函数内部通过添加值3来修改了原始变量。

2.4 数量可变的参数

在Python中,我们还可以定义数量可变的参数,这意味着函数可以接受任意数量的参数,而不仅仅是固定的数量。这些参数被称为不定长参数。

Python提供了两种不定长参数,一种是使用星号(*)来表示位置参数,另一种是使用双星号(**)来表示关键字参数。

以下是一个使用星号表示位置参数的例子:

def add(*args):

result = 0

for i in args:

result += i

return result

print(add(1, 2))

print(add(1, 2, 3))

在这个例子中,我们定义了一个名为“add”的函数,它可以接受任意数量的参数。在函数体内,我们使用for循环遍历所有的位置参数,并将它们加起来。

以下是一个使用双星号表示关键字参数的例子:

def print_dict(**kwargs):

for key, value in kwargs.items():

print(key, value)

print_dict(name='Alice', age=25, occupation='programmer')

这个示例中,我们定义了一个名为“print_dict”的函数,它接受任意数量的关键字参数。在函数体内,我们使用for循环遍历所有关键字参数,并打印它们的键和值。

3. 练习

我们来实现一个简单的斐波那契数列生成器,它可以接受一个整数n,生成斐波那契数列中的前n个数字。

def fib(n):

a, b = 0, 1

result = []

for i in range(n):

result.append(a)

a, b = b, a + b

return result

print(fib(10))

在这个示例中,我们定义了一个名为“fib”的函数,它接受一个整数n作为参数。在函数体内,我们使用两个变量“a”和“b”初始化斐波那契数列的前两个数字。我们还定义了一个名为“result”的空列表,用于存储生成的数字。使用for循环,我们执行n次循环以生成斐波那契数列中的前n个数字。每次循环,我们将“a”添加到“result”列表中,并使用元组解包将“b”和“a+b”分配给变量“a”和“b”,以便在下一次迭代中使用。

最终,我们返回“result”列表,其中包含生成的斐波那契数列。

4. 总结

在Python中,函数是一种用于组织代码的有用工具,可以封装一些相关的操作以供重复使用。可以定义一些形参,为它们规定默认值和传递方式,并可以使用不定长参数接收任意数量的参数。通过编写函数,我们可以使我们的代码更容易管理,并且增加我们程序的可重用性。

后端开发标签