Python函数(三)

递归函数

在函数内部,可以调用其他函数,如果一个函数的内部调用了自己本身,那么这个函数就是递归函数。

什么?函数还可以自己调用自己?那不是一个死循环吗?请看下例:

# 求1-100的和

def sum_num(n):
    result = 0
    for i in range(1, n+1):
        result += i
    return result

sum_num(100)

会不会感觉很繁琐,如果使用递归函数来实现会不会简单些?

def sum_num(n):
    if n <= 0:
        return 0
    return n + sum_num(n-1)

sum_num(100)

分析一下代码,当n小于等于0的时候,直接给出和值为0,这句不能省。当n大于0时,结果是n加上sum_num(n-1)。这里的sum_num(n-1)又是一次sum_num函数的调用,不过参数的值变成了n-1,要得sum_num(n)到的值就必须等待sum_num(n-1)的值被计算出来,同样要得到sum_num(n-1)的值必须等待sum_num(n-2)的值,如此一路推算下去,直到sum_num(0),因为if语句的存在,它不需要等待sum_num(-1)的计算了,而是直接给出结果0。然后程序一路返回,直到回到最初的sum_num(n),并给出最终结果。

递归核心思想: 每一次递归,整体问题都要比原来减小,并且递归到一定层次时,要能直接给出结果。

函数的预解析

在Python语言中,我们知道Python是一门脚本语言,类似于JavaScript之类的语言,那么让我们一起了解一下Python函数的预解析吧。

函数的执行过程

def func():
    pass

上面函数,如果我们在函数定义前调用函数,会出现什么结果?(报错) 那么问题来了?

def main():
    func()

def func():
    pass

main()

本例子中,我们发现调用main()函数时,func()函数也被调用了,并无异常。这是为什么?

因为在代码执行的过程中,Python会扫描代码,发现main()函数被调用,那么执行main()函数,main()函数内func()函数被调用,继续执行func()函数。

原文地址:https://www.cnblogs.com/liudemeng/p/12258998.html

时间: 2024-10-10 00:02:12

Python函数(三)的相关文章

python函数三 (装饰器)

一.函数名(学名:第一类对象) 函数名本质上就是函数的内存地址.通俗点就是特殊的普通变量 def func(): print(111) func() print(func) # 结果: # 111 # <function func at 0x00000150713F6048> 1.可以被引用(即可以赋值给其他变量) def func(): print('in func') f = func f() # 结果: # in func 2.可以被当作容器类型的元素 def func(): print

Python函数(三)-局部变量

全局变量 全局变量在函数中能直接访问 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" name = 'John' def test(): print(name) test() 运行结果 但是全局变量的值(数字,字符串)不会被函数修改 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" name = 'John' def test(name): print(&quo

【Python之旅】第三篇(一):Python函数

说明: 使用函数可以使程序实现功能模块化,大大简洁我们的程序,这里主要讨论Python中函数的下列内容: 1.函数定义与函数参数 2.局部变量和全局变量 3.函数默认参数和关键参数 4.*Args和**Kargs 因为函数部分内容跟C语言中的很多内容都十分相似,所以会结合C语言来进行对比学习. 1.函数定义与函数参数 --基本格式1:不参参数 ·定义: def sayHi():     print "Hello!" ·调用: >>> sayHi() Hello --基

第三篇:python函数

1.python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 2.函数分类 1.内置函数 2.自定义函数 3.为什么要定义函数 函数即变量,变量必须先定义后使用,未定义而直接引用函数,就相当于在引用一个不存在的变量名 代码演示? 4.定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以

python函数-------python2.7教程学习【廖雪峰版】(三)

任务: 看完函数这一章    已完成 2017年6月8日16:23:491.函数的作用:写较少的代码实现较多的功能,可以多次被调用.2.可见,借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的层次上思考问题.3.写计算机程序也是一样,函数就是最基本的一种代码抽象的方式.4.argument是参数的意思.5.比较函数cmp(x, y)就需要两个参数,如果x<y,返回-1,如果x==y,返回0,如果x>y,返回1:6.函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当

python学习三十三天函数匿名函数lambda用法

python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用法 def func(): print('aaa') func() 2,匿名函数的用法 f=lambda x,y:x*y m=f(3,5) print(m) 输出结果 15 匿名比较复杂的用法条件判断,匿名函数一般搭配函数内置函数使用 map() 文章来自(www.96net.com.cn) 原文地

python学习三十四天函数高阶函数定义及用法

python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn) 原文地址:https://www.

Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数

一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.

Python 五、Python函数

一.函数概述 1.函数的基础概念 函数是python为了代码最大程度地重用和最小化代码冗余而提供的基础程序结构. 函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件 函数用于将相关功能打包并参数化 在python中可以创建4种函数: 全局函数:定义在模块中 局部函数:嵌套于其它函数中 lambda(匿名)函数:仅是一个表达式 方法:与特定数据类型关联的函数,并且只能与数据类型关联一起使用 函数和过程的联系:每个Python函数都有一个返回值,默认为None,也可以使用"return