python学习之函数(四)--递归

1.什么是递归:递归比迭代高级;

 在递归函数中调用自己,如下,会陷入死循环:

  def recursion():      return recursion()小知识:python3的递归层深是100层,可以更改递归层深import syssys.setrecursionlimit(10000)

用非递归方式实现阶乘:

def factorail(n):    result = n    for i in range(1,n):        result *= i    return resultprint (factorail(5))

结果:120

 用递归方式实现阶乘:

 #用递归求阶乘
def factorail1(n):
if n== 0:
  return 0
if n==1:
  return 1
else:
  return n * factorail1(n-1)
print (factorail1(6))

结果:720

2.fibonacci递归数列的实现:

#用递归方法实现def fibonacci(n):    if n == 1:        return 1    if n == 2:        return 1    else:        return fibonacci(n-1)+fibonacci(n-2)print (fibonacci(20))

  结果:6765

#---------------------

#用非递归方法实现def fibonacci1(n):    s1=1    s2=1    s3=1    if n < 1:        print ("wrong input!")        return -1    else:        while (n-2) > 0:            s3 = s1+s2            s1 = s2            s2 = s3            n -=1        return s3print (fibonacci1(12))

3.汉诺塔



原文地址:https://www.cnblogs.com/zoeya/p/9438573.html

时间: 2024-09-30 16:37:07

python学习之函数(四)--递归的相关文章

Python学习系列(四)(列表及其函数)

Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么? 一种序列型数据类型,一有序数据集合用逗号间隔用方括号括起来. 2,几种访问形式 1)索引访问,语法结构:list_name[index].注意,列表的索引值从0开始.例如: 1 >>> li=[1,2,3,4,5] 2 >>> print li[2],li[0] 3 3 1 删除

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

python 学习_第四模块 并发编程(多线程)

python 学习_第四模块 并发编程(多线程) 1  开启线程方式 from threading import Thread import time def say(name): time.sleep(2) print("%s hello"%name) if __name__ =="__main__": t = Thread(target=say,args=("alex",)) t.start() print("主线程")

第七篇 python基础之函数,递归,内置函数

阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做

python基础之函数,递归,内置函数

一 数学定义的函数与Python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域 例如y=2*x python中函数定义:函数是逻辑结构化和过程化的一种编程方法. python中函数定义方法: def test(x): "The function definitions" x+=1 return x def:定

python学习之函数学习进阶(二)

一.内置函数 zip函数: zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的 元素按顺序组合成一个tuple,每个tuple中包含的是原有序列中对应序号位置的元素,然后返回由 这些tuples组成的list.若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同. 在所有参数长度相同的情况下,zip()与map()类似,没有参数的情况下zip()返回一个空list 例子: l1 = [1,2,3,4] l2 = ['a','b','c','d

Python基础之函数,递归。

一.数学定义的函数与python中的函数 - 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域 - python中函数定义:函数是逻辑结构化和过程化的一种编程方法. 二. 为何使用函数 1.解决代码重用 2.保持一致性,易维护 3.可扩展性 三. 函数参数 1.形参:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分

【python第三篇】 python基础之函数,递归,内置函数

一 数学定义的函数与python中的函数 1.函数的好处:代码重用,保持一致性,易维护性,可扩展性 2.什么是过程?就是没有返回值的函数值,函数返回值:1.若没有返回值,返回None(没有return):2.有返回值时,直接返回值: 总结: 返回值数=0:返回None 返回值数=1:返回object 返回值数>1:返回tuple 3.1形参和实参 a.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元,因此,形参只在函数内部有效,函数调用结束返回主调用函数不能再使用该形

python学习笔记-Day04-第四部分(装饰器)

这周学到了python的装饰器,以前没有接触过,问了一个搞php开发的同事什么是装饰器,他说就好像构造函数一样,可惜我已经把构造函数忘得光光了,想不起来是啥了.现在就找资料了解了解.毕竟装饰器是一个不用也能实现程序的功能,但是用了装饰器以后会显得你的技术特NB,但是不太好理解 学装饰器之前,需要先了解一下函数,前面的笔记里,有写过函数相关的笔记,可以先去参考一下前面的文章,这里只简单说一下. 在python中,函数由  def 关键字,函数名,可选的参数列表和函数体 来组成,通过return语句