递归函数,修改全局变量,高阶函数

一个函数调用自己本身,就是递归调用

    递归调用的三个条件

          1.必须有结束条件

          2.规模必须每次减少

            3.缺点容易导致栈溢出,所以一般调用层次是999层

 def func(n):
   print(n)
   return func(n+1)
 func(1)                             999层


 

def fun(n):
  if n >1:
    result = n*fun(n-1)
  else:
    result = 1

  return result

s= fun(4)

print(s)                 n的阶乘

2、修改全局变量

name= 'suqin'

def test1():
  name = 'lvhonglei'           #局部变量
print(name)

test1()
print(name)


name= 'suqin'

def test1():
  global name                #声明要修改的全局变量
  name = 'lvhonglei'
print(name)

test1()
print(name)

如果全局变量是字典、列表,那么不用global声明,即可修改

 

3

一个函数接受另外一个函数作为参数,称之为高阶函数

 

def add(a,b,f):              #  f 是一个函数
  return f(a)+ f(b)
s = add(3,-9,abs)
print(s)                    基本工作中用的很少

 

转载于:https://www.cnblogs.com/lvhonglei-python/p/7201751.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您演示如何利用递归函数绘制0~5阶科赫函数。首先我们需要了解一下科赫曲线的定义和特点。 科赫曲线是一种分形曲线,它由一条线段无限分割而成,每次分割将线段等分为三段,间一段删除并替换为两条等长的线段,连接这两条线段的顶点形成一个等边三角形,这个过程不断重复,直到无限细分。下面是绘制0~5阶科赫函数的代码: ```python 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.penup() turtle.goto(-300,0) turtle.pendown() turtle.pensize(2) level = 5 koch(600,level) turtle.right(120) koch(600,level) turtle.right(120) koch(600,level) turtle.hideturtle() main() ``` 这个代码,我们定义了一个名为 `koch` 的函数,它接受两个参数:`size` 表示当前线段的长度,`n` 表示当前递归的层数。当 `n` 为 0 时,直接绘制一条长度为 `size` 的直线;否则,我们需要把当前线段分成三部分,每一部分的长度都是原来的 1/3,然后递归地对这三部分应用相同的操作。 在 `main` 函数,我们初始化了 turtle 的画布和画笔,定义了绘制的阶数 `level`,调用 `koch` 函数分别绘制三条线段,最后隐藏 turtle 画笔。 以上就是绘制0~5阶科赫函数的代码,您可以在自己的电脑上运行并观察结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值