python 函数

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)
 
基本数据类型中注意
赋值、浅拷贝、深拷贝 之间的区别
 
posted @ 2018-05-27 15:11  cjcai1  阅读(93)  评论(0)    收藏  举报