Python函数02

Posted xingweikun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数02相关的知识,希望对你有一定的参考价值。

递归

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()

在这里插入图片描述

以上是关于Python函数02的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

python使用上下文对代码片段进行计时,非装饰器

引用向量的部分片段?

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

python 元组有用的函数,方法和片段。

Python代码阅读(第26篇):将列表映射成字典