美文网首页
day08_python_函数

day08_python_函数

作者: mmlong_07 | 来源:发表于2018-08-30 00:25 被阅读0次

    函数

    没有函数时会有什么问题?

    同样的代码需要写多次
    一个功能的需求发生改变需要修改的地方太多
    什么是函数:函数就是对实现某一功能的代码实现封装

    函数的分类:内置函数和自定义函数。

    内置函数:系统写好的函数,可以直接使用,例如:print函数,input函数,sum函数
    自定义函数:程序员自己去创建的函数,

    函数的声明:(不会执行函数体)

    a. 固定格式
    def 函数名(参数列表):
    函数体
    b. 说明:
    def :python中声明函数的关键字
    函数名:标识符,不能是关键字,PEP8(所有字母小写,多个单词用下划线隔开),见名知意
    ():固定格式,必须写
    参数列表:参数1,参数2,参数3.。。,也可以没有参数
    参数的作用是从函数的外面,向函数里面传值用的(将数据从函数外面传到里面)
    函数体():实现函数功能的代码段。函数体里面可能会包含 return

    注意:函数只有调用才会执行

    函数调用

    a.固定格式:
    函数名()

    b. 说明:
    函数名:你要调用那个函数就写对应的函数名。函数只能先声明才能调用
    实参列表:就是用来给形参传值的

    函数的调用过程(重要)

    a. 回到函数声明的位置
    b. 使用实参给形参赋值(传参)
    c. 执行函数体
    d. 将返回值返回给函数调用者
    e. 回到函数调用的地方,接着往后执行

    # 写一个函数,打印一个整数的阶乘,N! = 12*3*4.....*N
    
    def jie_chen(n):
        m = 1
        for i in range(1,n+1):
            m *= i
        print(m)
    jie_chen(5)
    

    参数:声明函数的时候的参数列表叫形参调用函数的时候,参数列表中的参数叫实参
    传参:传参的过程就是使用实参给形参赋值的过程,一定保证每个形参都要有值

    实参

    位置参数:传参时实参的位置和形参的位置一一对应(第一个实参传给第一个形参,第二个实参传给第二个形参)
    关键字参数:函数调用的时候通过'形参名=实参'的形式来传参

    def fun1(a,b,c=0):
        print(a,b,c)
    #位置参数
    fun1(1,2,3)
    #关键字参数
    fun1(b=1,c=2,a=3)
    #关键字和位置参数结合
    fun1(1,2,4)
    

    参数的默认值
    在声明函数的时候给参数赋默认值。
    a.给部分参数赋默认值时,要求有默认值的参数必须放到参数列表的最后
    b.调用有默认值的函数时可以不用传参,也可以传参。

    def fun2(a=9,b='a',c=True):
        print(a,b,c)
    
    fun2(b='d')
    

    不定个数参数
    python通过在形参名前加*,让折耳根形参变为一个元祖,
    来让这个形参可以同时接受多个形参。多个包含0个

    写一个函数,计算多个数的和

    def sum2(*i):
        sum1 = 0
        print(i,type(i))
        for item in list(i[0]):
            sum1 += int(item)
            print(sum1)
    
    l = '13141451'
    sum2(l)
    
    def sum3(a,b,*c):
        print(a,b,c)
    sum3('班级','分数',23,23,32,52,)
    

    对参数的类型进行说明
    python不能直接约束一个变量的类型。但是可以通过说明,来提示用户调用函数的时候,参数的类型

    def func4(name:str,age:int,score:list):
        print(name,age)
        score.append(name)
        print('====')
    func4('abc',1,[1,2,41,])
    return
    

    返回值:函数的返回值就是return关键字后面的表达式的值,就是函数
    调用表达式的结果
    python中所有的函数都有返回值,默认是None

    ####写一个函数,打印'hello'
    def say_hello():
        print('hello')
    #用一个变量保存函数调用的结果
    re = say_hello()
    print(re)
    

    return关键字(return只能写在函数体)
    a.确定返回值
    b.结束函数(函数只要遇到return,函数就直接结束)

    def fun1(n):
        print(n)
        return 100
     #   print('=====') # 不会执行
    
    re = fun1(10)
    print(re)
    
    

    注意:看一个函数的返回值是多少,不是看函数中有没有return,而是看函数有没有遇到return.
    遇到了就返回return后面的结果,否则就返回None

    def judge(number):
        if not number%2:
            return True
        else:
            return False
    print(judge(7))
    

    什么时候函数需要返回值
    只要实现函数功能会产生新的数据,就通过返回值将新的数据返回,而不是打印它
    补充:判断一个值是否是指定的类型

    isinstance(值,类型)---->返回值是布尔

    1.写一个函数,统计列表中浮点数的个数

    
    print(isinstance(10.0,int))
    print(isinstance(10.0,str))
    print(isinstance(True,int))
    def statistic(lst:list):
        n = 0
        for num in lst:
            if isinstance(num,float):
                n += 1
        return n
    

    2.将一个数字列表中所有元素的值都变为原来的二倍

    
    def multiply(lst:list):
        for i in range(len(lst)):
            lst[i] = lst[i]*2
        return lst
    def index(n,lst:list):
    lst1 = []
    for i in range(len(lst)):
    if n == lst[i]:
    lst1.append(i)
    return lst1
    

    3.写一个函数,获取指定元素对应的下标

    
    a = statistic([1,2,3,4.4,2.3])
    print(a)
    b = multiply([1,2,3,4,5])
    print(b)
    c = index(2,[1,3,4,2,5,6])
    print(c)
    

    相关文章

      网友评论

          本文标题:day08_python_函数

          本文链接:https://www.haomeiwen.com/subject/ppvlwftx.html