在Python中,函数的应用非常广泛。例如,用于输出的print()函数、用于输入的input()函数及用于生成一系列整数的range()函数,这些都是Python内置的标准函数,可以直接使用。除了标准函数外,Python还支持自定义函数。
创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具,使用def关键字实现,语法格式如下:
def functionname([parameterlist]): ['''''comments'''] [functionbody]
参数说明:
● functionname:函数名称,命名规则与标识符一致。
● parameterlist:可选参数,用于指定向函数中传递的参数。如果有多个参数,各参数间使用“,”分隔。如果不指定,则表示该函数没有参数,调用时也不指定参数。
即使函数没有参数,也必须保留一对空的(),否则将报错。
● comments:可选参数,表示为函数指定注释,注释的内容通常是说明该函数的功能、要传递的参数的作用等,可以为用户提供友好提示和帮助。
在定义函数时,如果指定了comments参数,那么在调用函数时,输入函数名称及左侧的圆括号时,就会显示该函数的帮助信息。
● functionbody:可选参数,用于指定函数体,即该函数被调用后要执行的功能代码。如果函数有返回值,可以使用return语句返回。
函数体functionbody和注释comments相对于def关键字必须保持一定的缩进。
如果想定义一个没有功能的空函数,可以使用pass语句作为占位符。
【例4.1】定义一个过滤危险字符的函数filterchar()。
def filterchar(string): """ 功能:过滤危险字符,并将过滤后的结果输出 :param string: :return: """ import re pattern = r'(黑客)|(抓包)|(监听)' # 模式字符串 sub = re.sub(pattern, "@_@", string) # 进行模式替换 print(sub)
运行上面的代码,将不显示任何内容,也不会抛出异常,因为filterchar()函数还没有被调用。
调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。调用函数的语法格式如下:
functionname([parametersvalue])
参数说明:
● functionname:函数名称,要调用的函数名称必须是已经创建好的。
● parametersvalue:可选参数,用于指定各个参数的值。如果需要传递多个参数值,则各参数值间使用逗号“,”分隔。如果该函数没有参数,则直接写一对圆括号即可。
【例4.2】调用4.1.1节创建的filterchar()函数。
about = "小明喜欢看黑客相关的图书,擅长于网络抓包" filterchar(about)
调用filterchar()函数后,得到的结果如图4.1所示。
图4.1 调用filterchar()函数的结果