zoukankan      html  css  js  c++  java
  • python中的函数以及递归

    一  函数

     函数的组成:

      def funname(parameters):

        instructions。。。。

    在探讨函数的定义之前,让我们想想,如果我们写了上千行代码,其实各种变量定义,循环..... 我们如何知道代码执行到哪里了?或者说什么时候会结束?

    因为我们应该谈谈函数的第一个特性了--分解

    分解:指的是模块化--》将代码的功能拆分成能独立运作的模块,使得代码清晰,也能重用
    那么应该如何分解呢?那就要说说第二个特性:抽象

    抽象:找到运算的相同模式。

    让我们先看下下面的代码熟悉下

    x = 4 
    def one(x):
        x +1
    print x
    z  =  one(10)
    print x    
        

    这里的x 的两次输出分别是多少?

    很显然这里涉及到的问题是全局变量和局部变量?

    我们把这一个代码文件想象成一房子,然而函数就是房子里面的冰箱,冰箱里面的空间是一个局部空间,那么冰箱里面的苹果跟房间里桌子上面的苹果不是一个苹果(我知道这个比喻不恰当)

    那么结果都是 4  4

    而函数的核心就是 [实现和功能的分离--你知道这意味着什么]

    二 递归:

      很难给递归下一个完整的定义,但是我还是要说说我的理解(上次看到有人说,递归就是函数调用函数本身,觉得是一个很纠结的说法。但是仔细想想,又不知道哪里出了问题LOL)

      递归---->将一个问题,分解成同类更小的问题(可能是问题的容量,也可能是问题的深度),从而解决问题

      举个例子:如何判断一个数字是不是回文数?
      回文数: 1 121 1221 12321 2332 大概是这样

         这里比如x = ‘12323432121’  判断方法:我们先比较第一个跟最后一个数的大小如果相同 我们把这两个数去掉 然后再来一次

      

    def two(x):
        if len(x) > 1:
            i = x[:1]
            l = x[-1:]
            if i == l:
                x = x[1:]
                x = x[:-1]
                if len(x) == 0:
                    return True
                else:
                    two(x)
            else:
                return False
        return True
    

      see  是不是很简单

  • 相关阅读:
    Python conda 入门
    EmEditor
    LInux 阿里云系统遇到挖矿程序
    Git 全局配置查看修改
    chrome下input文本框自动填充背景问题解决
    织梦调用当前位置 修改当前位置间隔符号
    dedecms调用文章内容
    dedecms文章页调用上一篇和下一篇文章
    dedecms在任意页面调用任意栏目文章
    dedecms判断当前页面是否为首页 织梦设置首页高亮
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/5618738.html
Copyright © 2011-2022 走看看