-1. 调用函数
要调用一个函数,需要知道函数的名称和参数,传入正确的类型、个数的参数即可
-2. 创建函数
定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
在执行函数时,执行到return语句即执行结束,返回结果,因此可以利用循环和判断语句实现复杂的逻辑。
如果没有return语句,则返回一个None值
def square_of_sum(L):
sum = 0
for x in L:
sum += x**2
return sum
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
执行结果:
55
900
-3. 函数返回多个值
在实际应用中,会需要返回多个结果,如:
import math
def quadratic_equation(a, b, c):
x1 = (-b + (b**2-4*a*c)**0.5)/(2*a)
x2 = (-b - (b**2-4*a*c)**0.5)/(2*a)
return x1, x2
print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)
执行结果:
(0.0, -1.5)
(5.0, 1.0)
此时函数返回了x1,x2 两个结果,通过print语句,可以知道,其实返回的是一个tuple,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
-4. 默认参数
函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。
由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面
def greet(str = 'world'):
print 'Hello,' + str+'.'
greet()
greet('Bart')
执行结果:
Hello,world.
Hello,Brart.
-5. 可变参数
如果想要函数接受一个任意参数,则需要定义一个可变参数,可变参数的名字前面有个 * 号,可以传入0个、1个或多个参数给可变参数。
而Python的解释器会把一组参数用一个Tuple传递给可变参数
# 求接受可变参数的 average() 函数。
def average(*args):
L= len(args)
sum = 0.0
if L == 0:
return sum
for x in args:
sum = sum + x
return sum/len(args)
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)