函数
在本章中,你讲学习编写函数,函数是带名字的代码块,用于完成具体的工作。
要执行函数的定义的特定任务,可调用该函数。需要在程序中多次执行该任务的函数,让python运行其中的代码。你将发现,通过使用函数,程序的编写.阅读.测试和修复都将更容易。
-
定义函数
下面是一个打印问候语的简单函数,名为greet():
greeter.py
1: def greet():
2: """显示简单的问候语"""
3: print("Hello!")
4: greet()
这个实例演示了最简单的函数结构。1:处的代码行使用关键字def来告诉python你要定义一个函数。这是定义函数,向python指出了函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。在这里,函数名为greet(),他不需要任何信息就能完成其工作,因此括号内是空的(括号是死命令,必须要加上),最后,定义以冒号结尾。
2:处是注释,描述了函数是做什么的。3:处是函数体内的唯一一行代码,greet()只做一项工作:打印Hello!。要使用这个函数,可调用他。函数调用让python执行函数的代码。要调用函数,可依次指定函数名以及用括号起的必要信息,如4:处所示。由于这个函数不需要任何信息,因此调用他时只需要输入greet()就行,和预期的一样,他打印Hello!:
Hello
-
向函数传递信息
只需稍稍改一下,就可以让函数greet()不仅向用户显示Hello!,还将用户的名字用作抬头。为此,可在函数定义def greet()的括号内添加username。通过在这里添加username,就可以让函数接受你给username指定的任何值。现在,这个函数要求你调用他时给username指定一个值。调用greet()时,可将一个名字传递给他,如下:
def greet(username):
"""显示简单的问候语"""
print("Hello, " + username.title() + "!")
greet("jesse")
代码greet("jesse")调用函数greet(),并向他执行print语句所需的信息。这个函数接受你传递给他的名字,并向这个人发出问候:
Hello!Jesse!
同样,greet("sarah")调用函数greet()并向他传递"sarah",打印Hello,sarah!。你可以根据需要调用函数greet()任意次,调用时无论传入什么样的名字,都会生成相应的输出。
-
实参和形参
前面定义函数greet()时,要求给变量username指定一个值。调用这个函数并提供这种信息(人名)时,他将打印相应的问候语。
在函数greet()的定义中,变量username是一个形参——函数完成其工作所需的一项信息。在代码greet("jesse")中,值"jesse"是一个实参。实参是调用函数时传递给函数的信息。我们调用函数时,将要让函数使用的信息放括号里。在greet("jesse")中,将实参"jesse"传递给了函数greet(),这个值被存储在形参username中。