栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python中递归函数详解_Python函数递归(带实例演示)?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python中递归函数详解_Python函数递归(带实例演示)?

一、函数定义及函数调用

函数定义:函数名(<参数>)参数可以没有,也可以有一个或者多个

以b站python视频中七段数码管的绘制的方向图示:

本实例通过使用turtle库在turtle库中的画布中绘制:

import time

import turtle

def drawgap():

    turtle.penup()

    turtle.fd(10)

def drawline(draw):

    drawgap()

    turtle.pendown()if draw else turtle.penup()

    turtle.fd(40)

    drawgap()

    turtle.right(90)

def drawDigit(digit):

    drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)#绘制第一号线

    drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)#绘制第二号线

    drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)#绘制第三号线

    drawline(True) if digit in [0,2,6,8] else drawline(False)#绘制第四号线

    turtle.left(90)(此处的left是因为在drawline中有个right(90),在4号线和5号线之间需要直线,所以需要和4号线平行。)

    drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)#绘制第五号线

    drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)#绘制第六号线

    drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)#绘制第七号线

    turtle.left(180)

    turtle.penup()

    turtle.fd(20)

def drawDate(date):#通过使用turtle库对当前时间进行数码管的绘制

    turtle.pencolor("red")

    for i in date:

        if i=='-':

            turtle.write("年")

            turtle.pencolor("blue")

            turtle.fd(40)

        elif i=='=':

            turtle.write("月")

            turtle.pencolor("green")

            turtle.fd(40)

        elif i=='+':

            turtle.write("日")

        else:

            drawDigit(eval(i))

def main():

    turtle.setup(800,400)

    turtle.penup()

    turtle.fd(-300)

    turtle.pensize(5)

    drawDate(time.strftime("%Y-%m=%d",time.gmtime()))#如果不想绘制当前实际时间,可以直接引用字符串直接进行绘制例如“20200327”

    turtle.hideturtle()

    turtle.done()

main()

 二、代码复用之函数递归

 

函数递归是通过对自身函数的调用

例如:def add(x,y):#实现两个数的相加

return x+y

实例:斐波那契数列:当n=1或者2的时候,F(n)取值为1,当n>2的时候,F(n)=F(n-1)+F(n-2).(在anaconda的运行结果)

运行结果为:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号