递归
1x2x3x4x5x6x7x8x9x10
def fact(n):
if n==0:
return 1
else:
return n*fact(n-1)
num=eval(input("请输入一个整数:"))
print(fact(abs(int(num))))
请输入一个整数:10
3628800
倒序输出字符串
def reverse(s):
if s== "":
return s
else:
return reverse(s[1:])+s[0]
str=input("请输入一个字符串:")
print(reverse(str))
请输入一个字符串:唐诗宋词
词宋诗唐
小测试
下列不是递归程序特点的是()
A:书写简单
B:一定要有基例
C:执行效率高
D:思路简单,代码不一定容易理解
答案选 C
实例 科赫曲线绘制
import turtle
def koch(size,n):
if n== 0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(800,400)
turtle.speed(1000) # 控制绘制速度
turtle.penup()
turtle.goto(-300,-50)
turtle.pendown()
turtle.pensize(2)
koch(300,3) # 科赫曲线长度,阶数
turtle.hideturtle()
main()
0阶科赫曲线
1阶科赫曲线
2阶科赫曲线
3阶科赫曲线
4阶科赫曲线
5阶科赫曲线
实例 绘制雪花
import turtle
def koch(size,n):
if n== 0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(600,600)
turtle.speed(10000000) # 控制绘制速度
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=4
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
main()