博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的函数以及递归
阅读量:5123 次
发布时间:2019-06-13

本文共 1077 字,大约阅读时间需要 3 分钟。

一  函数

 函数的组成:

  def funname(parameters):

    instructions。。。。

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

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

分解:指的是模块化--》将代码的功能拆分成能独立运作的模块,使得代码清晰,也能重用

那么应该如何分解呢?那就要说说第二个特性:抽象

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

 

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

x = 4 def one(x):    x +1print xz  =  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  是不是很简单

 

转载于:https://www.cnblogs.com/nerdlerss/p/5618738.html

你可能感兴趣的文章
【Java】synchronized与lock的区别
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>
AS3优化性能笔记二
查看>>
Java高阶回调,回调函数的另一种玩法
查看>>