zoukankan      html  css  js  c++  java
  • 进一步认识函数

    什么是前向引用:

      就是一个函数a体内嵌套另一个函数b,b函数的声明必须早于a函数对b的引用

    def lizi():
        print("in the lizi")
        info()
    lizi()
    def info():
        print("in the info")
    View Code

    什么是局部变量:

      就是一个变量只在函数里生效,函数就是这个变量的作用域;只有字符串,数字在局部里面更改不了全局的变量,但字典,集合,列表是可疑在局部变量中更改的,而元祖本色就不能更改

    name = "zfq"
    
    def chang():
        name = "zx"
        print(name)
    
    chang()
    print(name)
    View Code

      可以通过global将这个局部变量作用于全局(不过不推荐使用global,也不推荐改变全局变量,导致后期维护困难)

    name = "zfq"
    
    def chang():
        global name
        name = "zx"
        print(name)
    
    chang()
    print(name)
    View Code

    关于递归函数:

      在函数内部,可以调用其他函数,如果调用的是自身,则这个函数就是递归函数;最多递归999层,当到998层还没有结果,则报错

      递归函数的定义:

        1.必须有一个明确的结束条件

        2.每次进入更深一层递归时,问题规模相比上次递归都应该有所减少

        3.递归效率不高,递归层次过多会导致栈溢出

    def calc(n):
        print(n)
        if int(n/2)==0:
            return n
        return calc(int(n/2))
    
    calc(10)
    View Code

    关于函数式编程:

      是一种编程范式,即一种如何编写程序的方法论

    关于高阶函数:

      变量指向函数,函数的参数能接受变量,那么一个函数的就可以接受另一个函数作为参数

    #高阶函数,将abs函数当成参数传入
    def add(a,b,f):
        return f(a)+f(b)
    res = add(3,-6,abs)#abs表示绝对值的方法
    
    print(res)
  • 相关阅读:
    win10下查看进程,杀死进程
    Pycharm,debug调试时怎样带参数
    struts2,登录功能模块实现
    struts2处理.do后缀的请求
    struts2 修改action的后缀
    j2ee中如何拦截jsp页面?
    4个好用的JS联动选择插件
    css position:absolute 如何居中对齐
    使用jquery插件报错:TypeError:$.browser is undefined的解决方法
    phpcms v9后台多表查询分页代码
  • 原文地址:https://www.cnblogs.com/zfquan/p/7450377.html
Copyright © 2011-2022 走看看