• 递归思想与内置方法


    我太难了,老铁,我感觉最近压力很大

    想躺赢,想当个混子

    开玩笑的,我虽然压力很大,但是我还是要装作很快乐的样子,为什么呢?因为我是真的快乐。

    来,到了每日的打气环节。

    今日洗脑金句: 人民币贬值了,达内股市也跌了,要想不掉价,你得往上爬!

    递归

    今天的内容很少,所以我们短话长说,顺带一点拖延时间。

    按照惯例,我会问你们什么是递归,然后在自己解释一下递归是什么,然后再举几个栗子进一步解释一下递归。

    但是今天,我依然会采取同样的方式来讲解

    img

    什么是递归?

    递 and 归 啊,递就是递过去,归就是收回来。

    我就不上图了,怕你们接受不了,递归,就是在函数里面调用这个函数他本身,这样会变成死循环没

    错,但是你可以在里面的函数被调用前写一些条件,让他变成不是死循环。

    count = 1 # 2 # 3
    def f1():
        global count  # 下面的count是全局的count
        if count > 100:
            return
        count += 1 # 2 # 3
        print(count) # 2 # 3
        f1()
    
    f1()
    

    你调用了f1,然后当count>100的时候就会return,就这样,第一个函数执行到了最后一句,也就是f1,继续执行一样的内容,不同的地方是,这时候的count已经+1了,所以最后会返回 100.

    递归讲到这里就好了,因为下面有个很吊的东西,叫做汉诺塔,根本搞不懂,有兴趣的人可以自己去

    了解一下。

    内置方法

    55内置函数-内置函数.jpg?x-oss-process=style/watermark

    这么多方法,里面有我们已经很熟悉的,还有一些是还没学的,以及一些傻逼才会用的。

    主要需要扩展的就是一个, enumerate()方法,作用是同时取出列表的索引和元素。

    面向对象编程

    面向 过程 编程

    按照 流程(流水线的思想) 码代码

    就相当于是造瓶子

    输入原材料(一堆塑料) --> 融化塑料 --> 造瓶身和瓶盖 --> 输出瓶子

    一堆变量/参数 --> 函数1(过程1) --> 函数2(过程2) --> 结果

    ​ 函数3(过程3) --> 函数2(过程2)

    上一个过程的输出必定是下一个过程的输入

    优点:1. 思路清晰

    缺点:1. 上一个过程完蛋了,下一个过程也完蛋

    1. 功能与功能之间不独立
    2. 牵一发而动全身(nick:这句话说得好),不方便修改/扩展功能,可扩展性差

    这就是面向对象编程,等于扯淡。没吊用

    这里涉及一点点明天要讲的内容。模块化思想。

    模块化思想,9个函数分成3大类模块,模块1/模块2/模块3, 以前9个函数互相关联,顶多3个之间互相关联呀.解耦合了(把重复的代码再一次抽离)

    什么意思呢,就是以前你一个页面写九个函数,两两相关,现在引出了模块化思想,把所有的函数分成了三类模块,这时候你只用把三个模块给联系起来就好了。

    就变成了每个模块里面放三个函数,然后联系起来。

    啊字:”老师那每个模块里的三个函数是不是要关联起来啊?“

    nick:“对啊”

    啊字:“那有毛用,还不是相当于九个连在一起”

    nick:“但是这样看上去思路更加清晰了啊”

    啊字:“。。。。”

    坐等明天上课

    img

  • 相关阅读:
    javase程序设计上机作业2
    操作系统课堂笔记——01,操作系统介绍
    javase程序设计上机作业1
    Matlab学习笔记1—MATLAB基础知识
    Matlab学习笔记0—课程导入
    【转】WEB技术发展简史
    leetcode-79-单词搜索(用dfs解决)
    leetcode-78-子集(用bfs解决)
    leetcode-74-搜索二维矩阵
    leetcode-46-全排列
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11352899.html
Copyright © 2020-2023  润新知