Python函数的定义

来源:互联网 发布:剑三毒姐捏脸数据 编辑:程序博客网 时间:2024/05/21 15:40

函数

函数定义

#!/usr/bin/evn python3#-*- coding:UTF-8 -*-    import math               #调用math数据包 math.pi  math.sin()  math.cos()  math.sqrt()    def my_abs(x):            #def 函数名 括号 参数 冒号        if not isinstance(x, (int, float)):     #参数类型检查            raise TypeError('bad operand type')        if x>=0:            return x,math.sqrt(x)                           #返回语句,可以返回多个值,也可以不返回(默认为None)        else:            return -x,x                                     #返回语句中返回的是tuple类型数据    x,y=my_abs(30)                           print (x,y)    x,y=my_abs(-30)    print (x,y)    def my_max(x1,x2,x3):        pass                                            #pass占位符 让程序可以正常进行

函数参数

注:除了正常使用的位置参数(必选参数)外,还可以使用默认参数,可变参数和关键字参数

def enroll(name,gender,age=6,city='Beijing',*number,d,**kw):    #name和gender是位置参数,实参与形参的个数和位置一致    #age和city是默认参数,可传可不传实参,默认参数的对象必须是不可变对象    #可变参数 将1个形参转化为0个或多个形参,构成1个tuple参数    #关键字参数,就是一个dic参数,里面的关键字任意    #命名关键字参数,就是dic参数,但其中的key是命名好的,只接受key作为关键字参数    print('name:',name)    print('gender:',gender)    print('age:',age)       print('city:',city)     sum=0    for n in number:        sum=sum+n*n    sum=sum+age    print(sum)    print(d)    print(kw)    number=[1,2,3,4,5]    dic={'d':11,'job':'Beijing','livingtime':8}    enroll('Lihua','F',6,'Shanghai',*number,**dic)     enroll(*number,**dic)    # × 将一个实参转化为0个或多个实参    # ×* 将一个实参转化为0个或多个实参

递归函数

#尾递归是指,在函数返回时,调用自己本身,并且,return语句,不能包含表达式。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)print (fact(5))#尾递归是用来解决栈溢出问题(但python标准的解释器没有对尾递归做优化)
原创粉丝点击