函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
1、 定义一个函数。使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
def hello():
print "hello"
hello() # 调用函数,打印出hello
2、没有return语句,函数执行完毕后也会返回结果,只是结果为 None。
3、函数返回多个值
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi / 6)
print x, y # 151.961524227 70.0
r = move(100, 100, 60, math.pi / 6)
print r # (151.96152422706632, 70.0)
这只是一种假象,Python 函数返回的仍然是单一值,是一个tuple。
4、递归函数:函数内部调用自身。
def fibo(n):
if n <= 2:
return 1
return (fibo(n - 1) + fibo(n - 2))
print(fibo(8))
5、定义函数的时候,还可以有默认参数。
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
print power(2) #默认计算2的平方
print power(2,3) #计算2的三次方
6、一个函数能接受任意个参数,我们就可以定义一个可变参数。
def fn(*args):
print args
fn('a') #('a',)
fn('a', 'b') #('a', 'b')
fn('a', 'b', 'c') #('a', 'b', 'c')
可变参数的名字前面有个 * 号,我们可以传入 0 个、1 个或多个参数给可变参数。
7、基本数据类型的参数:值传递;表作为参数:指针传递