
上QQ阅读APP看书,第一时间看更新
3.1.1 自定义函数的格式
自定义函数用关键字def(define)来定义,其格式如下所示,其中[]内的内容是可选项。

各项的说明如下:
- def是自定义函数的关键字,是不可缺少的。
- functionName是自定义的函数名,由编程人员来确定。函数名的取名规则可以参考变量的取名规则,通过函数名来调用函数,调用形式为functionName(参数的真实值)。functionName后的括号“()”是必需的,即便是没有函数参数,也必须写入。
- parameter是函数参数,可以没有,也可以有任意多个,各个参数之间用逗号隔开。定义函数时的参数是形式参数,并不是调用函数时的真实参数,调用函数时,真实参数值传递给形式参数。
- 冒号“:”是必需的格式,说明后续的语句是函数语句。函数语句要进行缩进,当遇到不再缩进的语句时,函数语句结束。
- 函数说明放到三个双引号(""" """)或三个单引号('''''')中。函数说明可以是多行,用来说明函数的功能、格式、参数类型、返回值的个数和类型等信息,帮助其他人了解该函数的使用方法。函数说明可以通过help(functionName)函数显示出来,或者用functionName.__doc__显示。
- 函数语句是编程人员要写的函数体,用于实现函数的功能。如果暂时不想写语句,可以用pass语句代替。函数语句相对于关键字的位置要进行缩进。
- return语句定义函数的返回值,返回值可以有1个或多个,也可以没有。如果有多个返回值,则返回值之间用逗号隔开。return语句可以放到函数语句的任意位置,当遇到return语句时,返回函数的返回值,如果return语句后面还有其他语句,会忽略其他语句,这时通常把return语句放到if的分支结构中。return语句是可选的,如果函数中没有return语句,函数没有返回值,通常只产生一定的动作(功能)。
- 返回值类型提示:在自定义函数的第1行,在“:”前面可以添加类型提示功能,类型提示用“->类型”定义,例如“def total(n)->int:”提示返回整数。
下面是一个计算从0到正整数N求和的自定义函数,函数参数是N,返回0+1+2+ 3+…+N的值。在Python的IDLE的文件窗口中输入下面的代码,通过xx=total(x)调用函数total(),并把函数返回值放入变量xx中。

运行上面的代码,在shell中输入10000,得到如下内容,输入help(total),得到函数的说明。

下面的函数计算从0到n的和,n可以为负数。return语句放到if分支中,根据if的逻辑表达式的值决定输出哪个y值,只要执行到return语句,自定义函数就会执行完毕,return后的语句不会再执行,例如在输入整数的情况下,函数体内的print('hello')语句永远不会被执行。
