一递归函数

我们老师经常喜欢讲的一句话就是:人理解函数,神理解递归,那么什么是递归函数?

递归函数:在一个函数里面调用函数本身,也就是说这个函数里面出现了和函数一样的名字

例如:

def  func(n):
print('我是递归%s' %n)
n=n+1
func(n)
n=10
func(n)

上面的例子,它会无限递归下去,那么,它到什么时候停止呢,天荒地老,还是海枯石烂?

经过实际证明,它内部有个限定值:997,一旦到了998它就报错了,函数的每次调用都会产生一个名称空间,是要消耗内存的,这么多的递归基本能解决问题了,没有的话,需要优化代码了。

那是不是可以突破这个限制呢,答案是可以

import sys
print(sys.setrecursionlimit(‘任意值’))

通过上面的代码,你可以修改为任意值,但是这个情况似乎只能当作一个热闹,修改是没有意义的。

二递归示例

递归很多的场景是本次的操作需要前一次的数据,以此类推下去。。。

例如阶乘

def factorial(n):
if n==1:return n
else:
return n*factorial(n-1)
print(factorial(10))

  

day6--递归函数的更多相关文章

  1. javascript中的递归函数

    正常的递归函数如下: function factorial(num){ ){ ; }else{ ); } } 这个函数表面看起来还ok,但如果我们执行下面代码就会出错. var jenny = fac ...

  2. Python之路,Day6 - Python基础6

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  3. day6

    开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...

  4. JS函数相关及递归函数的使用

    JS函数相关及递归函数的使用 通用js程序: function 函数名(参数列表) { 函数体 } 可使用alert()输出,也可用return返回值. alert与return区别: functio ...

  5. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  6. python3--函数(函数,全局变量和局部变量,递归函数)

    1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能, ...

  7. Python之路 day3 递归函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 在函数内部,可以调用其他函数.如果一个函数在内 ...

  8. Python3学习(二)-递归函数、高级特性、切片

    ##import sys ##sys.setrecursionlimit(1000) ###关键字参数(**关键字参数名) ###与可变参数不同的是,关键字参数可以在调用函数时,传入带有参数名的参数, ...

  9. 团队项目——站立会议DAY6

    团队项目--站立会议 DAY6        团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱        今日(2016/5/13),站立会议已进行了一周时间,大家将这一周所遇到的问题和 ...

  10. 浅谈-js递归函数

    所谓的递归函数就是在函数体内调用本函数.使用递归函数一定要注意,处理不当就会进入死循环.递归函数只有在特定的情况下使用 ,比如阶乘问题 下面我们就做一个10以内的阶乘试试看吧: [Ctrl+A 全选 ...

随机推荐

  1. Java JDBC基本用法

    准备oracle驱动包:maven添加oracle jdbc依赖 pom.xml <!-- oracle jdbc驱动 --> <dependency> <groupId ...

  2. Git-打标签

    打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及 ...

  3. Video to SDI Tx Bridge模块video_data(SD-SDI)处理过程

    Video to SDI Tx Bridge模块video_data(SD-SDI)处理过程 1.Top Level Block Diagram of Video to SDI TX Bridge V ...

  4. jQuery同一标签多个相同事件 return语句 表单提交实例

    如form表单的submit,a标签都自带一个鼠标单击事件,其实我们还可以额外填加单击事件 如:$(':submit').click();   则自定义的单击事件先执行,然后才是标签自带的单击事件(c ...

  5. 微信JS API PHP类

    CURL操作类: <?php namespace app\common; class curl{ public static function wxcurl($getUrl){ $ch = cu ...

  6. JAVA中Integer类型变量比较问题

    今天在做实验的时候,发现了一个比较奇怪的问题:两个Integer型变量用==进行比较时,有时候能成功有时候不能成功.举个例子: 代码1: Integer l1 = 122; Integer l2 = ...

  7. 【Centos7裁剪】

    #!/bin/sh rootdir=`pwd` rm -rf ${rootdir}/centos* KERNEL_DIR=${rootdir}/kernel ROOTFS_DIR=${rootdir} ...

  8. 【剑指offer】输出链表倒数第K个元素

    /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ ...

  9. Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)

    本博文,是在http://blog.csdn.net/u010911997/article/details/44099165  的基础上.感谢原博主! 问题1:在DFS Lcation 上不能多文件进 ...

  10. MySQL锁之三:MySQL的共享锁与排它锁编码演示

    一.行锁之MySQL  使用SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEA ...