代码主要有四种模式:
- 顺序
- 条件
- 循环
- 储存并重复使用
函数便是第四种模式:储存并重复使用。如果有某一段代码的的功能需要被重复调用,那么相对于重复这一段代码,一个更好的方法是将这段代码打包成函数,在需要的时候调用这一函数。
一个简单的函数和结构如下所示:
在上述代码中,用def进行声明,声明了一个名为think()的函数,函数的功能为print(Hello)和print(‘Fun’),接着在之后调用了这个函数两次。
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
函数中也可以包含条件判断语句:
以下是调用函数时可使用的正式参数类型:
- 必需参数:必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用 printme() 函数,你必须传入一个参数,不然会出现语法错误。
- 关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
- 默认参数:调用函数时,如果没有传递参数,则会使用默认参数。
- 不定长参数:你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数不定长参数语法如下:
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串"
function_suite
return [expression]
加了星号 ***** 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数:
#!/usr/bin/python3
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
输出结果为:
输出:
70
(60, 50)