Python函数具有许多数学函数的特点。特别是Python中的函数具有以下特点:
- 代表执行单独的操作。
- 采用零个或多个参数作为输入。
- 返回值(可能是复合对象)作为输出。
一、为什么使用函数
(1)分而治之的策略。
函数把程序分成了更小的程序段,使程序编写更加容易。
(2)抽象
函数为程序的一部分提供了更高层次、更抽象的接口。通过封装细节,函数为程序员提供高层次的程序元素图,而其中的细节可以留待后续工作时再补充。
(3)重用
可以在程序中的任意位置多次调用函数。
(4)共享
可以把有效的函数分享给其他人使用。
(5)安全性
小段代码可以仔细审核,证明它的正确性,有助于建设较大规模和较安全的代码
(6)简化/可读性
程序中任何用多行代码来解决一个问题的地方,都可用函数来替换这些行。让主程序更加简单。
二、Python函数
定义
定义函数,即创建函数的过程。
一般语法为:
def 函数名(形参1,形参2,....):
函数代码块(要执行的操作)
return 值
需要注意的是:
(1)函数名最好和函数功能相关联,并遵循变量命名规则。例如求面积的函数,可以命名为getArea
(2)不能省略冒号
(3)函数的参数可以没有,也可以有多个。
(4)返回值可以没有,也可以返回多个值。例如下面例子中得到面积后就直接输出了,不需要返回值。
def getArea1(n):
area=3.14*n*n
print(area)
但如果想要函数只计算,在主程序再输出,那么函数就得把计算结果作为返回值。如:
def getArea2(n):
area=3.14*n*n
return area
调用
调用就是函数在程序中的应用。
一般格式为:
函数名(实参1,实参2...)
注意:一般地,调用函数时实参个数要和形参个数相对应。(特别的默认形参后面再提)
例如调用上面定义的函数
(1)不带返回值的函数,直接使用,如
getArea1(4)
此时调用函数getArea,并把实参4传递给形参n,n=4,然后输出50.24
(2)带返回值的函数,需要对函数返回的结果进行操作。
如:直接输出print(getArea2(4))
赋值给变量area=getArea2(4)
进行运算,例如一个面积要100元,一共需要多少元,可以price=getArea2(4)*100
参数的传递
参数值通常是根据参数的排列顺序来传递的,定义时的参数称为形参(还没有具体值,走个形式),调用时称为实参(有实际值了)。
形参和实参的名字不需要匹配。
例如yushu(a,b)是计算a除以b后余数是多少的函数。调用时yushu(6,4)会根据顺序,第一个实参6传给第一个形参a第二个实参4传给第二个形参b。
此时实参和形参的数量必须一样,不然报错。
三、定义和调用
(1)调用一个函数前一定要先定义。否则会报错(如下)
(2)程序执行函数的先后顺序和定义的先后顺序无关,只和调用的先后顺序有关。
(3)**定义可以在它被调用前的任意位置。**不一定要放在最前面。(但一般地,为了方便找到函数定义的位置,把它放前面了)
四、小练习
1、给出下列函数的输出值:
def makeOdd(n):
return 2*n+1
print(makeOdd(2))
n=3
print(makeOdd(n)
print(1 +makeOdd(3))
【参考答案】
5
7
8
2.写一个函数makeEven(n)。如果使用字符串作为参数,会发生什么情况?与实现makeodd(n)有哪些操作不同?
会报错
2*n+1中前面得到字符串重复两次的值,也是字符串,字符串和1不能相加