使用def关键字实现,具体的语法格式如下:def functionname([parameterlist]): ['''comments'''] [functionbody]参数说明:■ functionname:函数名称,在调用函数时使用。■ parameterlist:可选参数,用于指定向函数中传递的参数。如果有多个参数,各参数间使用逗号“,”分隔。如果不指定,则表示该函数没有参数,在调用时也不指定参数。■'''comments''':可选参数,表示为函数指定注释,注释的内容通常是说明该函数的功能、要传递的参数的作用等,可以为用户提供友好提示和帮助的内容。■ functionbody:可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。如果函数有返回值,可以使用return语句返回。基本语法:functionname([parametersvalue])参数说明:■ functionname:函数名称,要调用的函数名称必须是已经创建好的。■ parametersvalue:可选参数,用于指定各个参数的值。如果需要传递多个参数值,则各参数值间使用逗号“,”分隔。如果该函数没有参数,则直接写一对小括号即可。
函数的创建与调用应用实例:
2.函数参数,在定义函数时放在函数名称后面的一对小括号中。2.1在定义函数时,函数名后面括号中的参数为“形式参数”。在调用一个函数时,函数名后面括号中的参数为“实际参数”。2.2 值传递和引用传递的基本区别就是,进行值传递后,改变形式参数的值,实际参数的值不变;而进行引用传递后,改变形式参数的值,实际参数的值也一同改变。注意:函数def下面的代码必须缩进,否则不属于函数内部。也成必备参数,是必须按照正确的顺序传到函数中,及调用时的数量和位置必须和定义时是一样的。比如上面的例子,如果调用时,只传递姓名,身高,没有体重,则会报错;如果将体重或身高与姓名交换位置,也会报错;但如果只是交换身高和体重的位置,不会报错,但计算出的结果会出错,这样的错误不容易发现。所以在调用函数时,一定要确定好位置。通过关键字参指定实际参数时,不再需要与形式参数的位置完全一致。只要将参数名写正确即可。这样可以避免用户需要牢记参数位置的麻烦,使得函数的调用和参数传递更加灵活方便。
如上面函数调用语句改成关键字参数指定各实际参数,不需要与形式参数位置完全一致,也能输出正确的结果:
2.5为参数设置默认值
可以为参数设置默认值,防止没有指定参数时抛出异常。
定义带有默认值参数的函数的语法格式如下:
def functionname(…,[parameter1 = defaultvalue1]): [functionbody]
参数说明:■ functionname:函数名称,在调用函数时使用。■ parameter1 = defaultvalue1:可选参数,用于指定向函数中传递的参数,并且为该参数设置默认值为defaultvalue1。■ functionbody:可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。
可以使用“函数名.__defaults.__”语句,查看函数的默认值参数的当前值,如上面的例子,用该语句输出默认值参数的当前值:
注意:默认参数必须指向不可变对象。
2.6可变参数,即传入函数中的实际参数可以是任意多个。
2.6.1 *parameter 这种形式标识接受任意多个实际参数并将其放到一个元组中。
实例应用:根据身高、体重计算BMI指数(共享升级版)2.6.2 **parameter这种形式表示接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中。
如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加”**“。
2.7返回值 作用就是将函数的处理结果返回给调用它的程序。
用return语句为函数指定返回值,语句格式如下:return【value】
如果函数中没有return语句时,将返回None,即返回空值。
PS:代码是一个很严谨的事情,可能是现在还接触的太少,或者经验还太少,感觉很容易出错。一个字母,一个空格,一个对齐,都会影响代码运行的正确与否。