Python函数的基本语法与参数传递
Python是一种解释型、面向对象、动态数据类型的高级编程语言,具有简单易学、可读性强、运行速度快等特点。Python中函数是一种封装并可重用的代码块,函数能接收参数、执行一系列的操作,并返回结果。本文将为大家介绍Python函数的基本语法和参数传递的相关知识。
#### 1.函数的定义
Python中函数的定义使用def关键字,语法如下:
def function_name(parameter1, parameter2, ……): # 函数体内的具体实现 return value
其中:
- function_name 是函数名,需要遵循标识符的规则;
- parameter1、parameter2、……是参数,可以有任意数量、任意类型的参数;
- # 函数体内的具体实现是函数的核心,用于实现待执行的操作;
- return value是返回值,可以省略,也可以返回任意值。
注意,Python中函数体使用缩进表示,函数体内所有的语句需要保持相同的缩进层次。
#### 2.函数的调用
Python中函数的调用非常简单,就是将函数名和参数列表写在一起即可,语法如下:
function_name(argument1, argument2, ……)
其中,argument1、argument2、……是实际传递给函数的参数值。
#### 3.参数传递
在Python中,函数的参数分为两种:位置参数和关键字参数。
位置参数是指按照位置顺序传递给函数的参数,例如:
def add(x, y): return x + y add(2, 3)
在上面的代码中,2和3是按照位置传递给函数add的,x被赋值为2,y被赋值为3,所以函数返回5。
关键字参数是指使用参数名对应传递的参数,可以使用关键字参数来改变默认的参数值。例如:
def ask(prompt, retries=4, reminder='Please try again!'):
while True:
response = input(prompt)
if response in ('yes', 'y'):
return True
if response in ('no', 'n'):
return False
retries -= 1
if retries < 0:
raise ValueError('invalid user response')
print(reminder)
ask('Do you really want to quit?')
在上面的代码中,ask函数有三个参数:prompt、retries和reminder。其中retries和reminder使用了默认值,可以通过传递关键字参数来改变它们的值,例如:
ask('Do you really want to quit?', retries=2, reminder='Last chance!')
在这种情况下,retries被赋值为2,reminder被赋值为'Last chance!'。
#### 4.可变参数
有些时候,我们希望将多个参数传递给函数,但是不确定参数的数量,这个时候就需要使用可变参数。Python提供了两种可变参数:*args和**kwargs。
*args表示将不定数量的位置参数传递给函数,语法如下:
def func(*args):
for arg in args:
print(arg)
func(1, 2, 3)
在上面的代码中,func函数接收可变参数,并通过循环遍历参数来输出它们的值。在调用该函数时,可以传入任意数量的参数,例如:func(1, 2, 3)。
**kwargs表示将不定数量的关键字参数传递给函数,语法如下:
def func(**kwargs):
for key, value in kwargs.items():
print(key, value)
func(name='Tom', age=20)
在上面的代码中,func函数接收可变关键字参数,并通过循环遍历参数来输出它们的键值对。在调用该函数时,可以传入任意数量的关键字参数,例如:func(name='Tom', age=20)。
#### 5.函数的参数传递方式
Python中函数的参数传递方式有两种:值传递和引用传递。
值传递是指将函数参数的值复制一份后传递给函数,函数内部操作不会影响原来的参数变量值。例如:
def func(x): x += 1 return x a = 1 func(a) print(a)
在上面的代码中,a的值为1,func函数接收a的值并加1后返回,但是在调用func函数之后,a的值没有发生变化,仍为1。
引用传递是指将函数参数的地址复制一份后传递给函数,函数内部操作会影响原来的参数变量值。例如:
def func(a_list):
a_list.append('d')
return a_list
b_list = ['a', 'b', 'c']
func(b_list)
print(b_list)
在上面的代码中,b_list的值为['a', 'b', 'c'],func函数接收b_list的地址并在其末尾加上'd'后返回,此时b_list的值被修改为['a', 'b', 'c', 'd']。
#### 6.总结
Python函数是一种封装并可重用的代码块,在函数体内实现一系列的操作后返回结果。Python函数的调用非常简单,就是将函数名和参数列表写在一起即可。在Python中,函数的参数分为两种:位置参数和关键字参数。可变参数包括*args和**kwargs,可以在不确定参数数量的情况下传递任意数量的位置参数或关键字参数。Python中,函数的参数传递方式有两种:值传递和引用传递,需要根据实际情况进行选择。
