1 函数的使用,函数调用
>>> abs(-12)
12
函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:
>>> a = abs
>>> a(-1)
1
函数的定义
def
函数名
括号
参数
:
如下 def my_abs(x):
定义一个 空函数
def nop( ) :
pass
函数返回值(可以多值返回)
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
函数的参数
1 默认参数,兼容以前的函数
2 默认参数需要在后面
比如定义一个人的函数
def man(name, gender)
print("name:",name);
print("gender:", gender);
如果需要传入年龄和城市
def man(name,gender,age=22,city="shenzhen")
...
可变参数的传入(参数的个数不固定)
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n
return sum
参数的组合(默认参数,可变参数,关键参数)
def f1(a, b, c=0,*args, **kw)
print(‘a = ',a ,'b = ',b, 'c = ', c, 'args = ', args, 'kw = ', kw)
递归函数
def fact(n):
if n == 1:
return 1
return n* fact(n-1)
使用递归函数时注意防止栈溢出
防止栈溢出的方法,尾递归
def fact(n):
return fact_iter(n, 1)
def fact_iter(num, product);
if num = 1:
return product
return fact_iter(num -1, num * product)
基本数据类型中注意
赋值、浅拷贝、深拷贝 之间的区别