Python中turtle库(五)——递归

本文通过一个递归的故事引入,详细解释了如何在Python中使用递归函数,并展示了如何结合random和turtle库创作出运用递归的彩色图形。通过设置递归次数避免无限循环,实现了画彩圈的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你是否听过:
从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:……

要实现这段话,我们要运用递归

先定义一个名为say的函数并打印

def say():
    print("从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:")
say()

到这里,它只能打印出一句话

递归:自己执行自己
所以要在函数内先执行自己

def say():
    print("从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:")
    say()
say()

运行后编译器会报错
是因为我们应要有一个出口来结束这个递归

若只说100次

a = 0
def say():
    #将a设置为全局变量
    global a
    #将a每次加一
    a += 1
    if a > 100:
        return
    print("从前有座山,山里有座庙,庙里有两个和尚,老和尚对小和尚说:")
    say()
say()

这样就可以打印100次而不报错

运用递归画彩圈

我们要用到random和turtle库

import random
import turtle
pen = turtle.Turtle()
pen.speed(0)
turtle.colormode(255)
radius = 50#半径
def circle():
    global radius
    if radius > 200 :
        return
    radius += 1
        pen.pencolor(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    pen.circle(radius)
    pen.left(2)
    circle()
circle()

第二种

import random
import turtle
pen = turtle.Turtle()
pen.speed(0)
turtle.colormode(255)
def circle(radius):
    if radius > 200 :
        return
    pen.pencolor(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    pen.circle(radius)
    pen.left(2)
    circle(radius + 1)
circle(50)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值