函数是一个仅在被调用时运行的代码块。
您可以将数据(称为参数)传递到函数中。
函数可以返回数据作为结果。
在Python中,函数是使用以下方式定义的def关键字:
def my_function():
print("Hello from a function")
要调用函数,请使用函数名称后跟括号:
信息可以作为参数传递到函数中。
参数在函数名称后面的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔它们即可。
以下示例有一个带有一个参数 (fname) 的函数。调用函数时,我们传递一个名字,该名字在函数内部用于打印全名:
def my_function(
fname):
print(fname + " Refsnes")
my_function(
"Emil")
my_function(
"Tobias")
my_function(
"Linus")
亲自试一试 »
实参通常被简写为args在 Python 文档中。
形参和实参可以用于同一件事:传递到函数中的信息。
从函数的角度来看:
形参是函数定义中括号内列出的变量。
实参是调用函数时发送给函数的值。
默认情况下,必须使用正确数量的参数调用函数。这意味着,如果您的函数需要 2 个参数,则必须使用 2 个参数调用该函数,不能多也不能少。
该函数需要 2 个参数,并获取 2 个实参:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
亲自试一试 »
该函数需要 2 个参数,但只得到 1 个:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")
亲自试一试 »
如果您不知道将传递多少个参数到您的函数中,请添加*
函数定义中的参数名称之前。
这样该函数将收到一个元组参数,并可以相应地访问这些项目:
如果参数数量未知,请添加*
参数名称前:
def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Emil", "Tobias", "Linus")
亲自试一试 »
任意论点通常被缩短为*参数在 Python 文档中。
您还可以使用以下方式发送参数钥匙=值语法。
这样参数的顺序并不重要。
def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
亲自试一试 »
词组关键字参数通常被缩短为夸格斯在 Python 文档中。
如果您不知道将传递多少个关键字参数到您的函数中,请添加两个星号:**
函数定义中的参数名称之前。
这样该函数将收到一个字典参数,并可以相应地访问这些项目:
如果关键字参数的数量未知,请添加双精度数**
参数名称前:
def my_function(**kid):
print("His last name is " + kid["lname"])
my_function(fname = "Tobias", lname = "Refsnes")
亲自试一试 »
任意 Kword 参数通常被缩短为**夸格在 Python 文档中。
以下示例显示如何使用默认参数值。
如果我们不带参数调用该函数,它将使用默认值:
def my_function(
country = "Norway"):
print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
亲自试一试 »
您可以将任何数据类型的参数发送到函数(字符串、数字、列表、字典等),并且它将在函数内被视为相同的数据类型。
例如,如果您发送一个列表作为参数,那么当它到达函数时它仍然是一个列表:
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
亲自试一试 »
要让函数返回值,请使用return
陈述:
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
亲自试一试 »
function
定义不能为空,但如果由于某种原因你有一个function
没有内容的定义,放入pass
声明以避免出现错误。
Python 还接受函数递归,这意味着定义的函数可以调用自身。
递归是常见的数学和编程概念。这意味着函数调用自身。这样做的好处是您可以循环数据以获得结果。
开发人员应该非常小心递归,因为很容易编写一个永远不会终止的函数,或者使用过量内存或处理器能力的函数。然而,如果正确编写,递归可以是一种非常高效且数学上优雅的编程方法。
在这个例子中,tri_recursion() 是我们定义的调用自身的函数 ("recurse")。我们使用k变量作为数据,其递减(-1)每次我们递归。当条件不大于0时(即为0时)递归结束。
对于新开发人员来说,可能需要一些时间才能弄清楚它到底是如何工作的,最好的方法是通过测试和修改它。
递归示例
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)
亲自试一试 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!