04_python基础_函数
2020-03-05 本文已影响0人
lin0cb
目标掌握函数的几种常见操作,包括函数定义、函数调用、递归函数
函数定义及调用
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
1 语法
def 函数名(参数列表):
函数体
#函数代码块以def关键词开头,后接函数标识名称和圆括号()
#任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数
#return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
2 案例
>>> def hello_world():
... print("hello world")
...
>>> hello_world()
hello world
#不带参数的函数
>>> def area(width,height):
... return width * height
...
>>> print(area(3,4))
12
#带参数的函数
递归函数
在函数内部可以调用其他函数,如果调用的是自身则为递归函数
1 实现思路
递归函数实现可分为如下三个步骤:
1、确定临界值1,一般是完成任务的前一步,需要特殊处理
2、=1,需要执行的操作
3、>1,(n)->(n-1)时的操作(n>2)
2 案例1_阶乘
#案例1:计算出阶乘n!的值
#分析:临界值为1;=1,return 1;> 1,n*(n-1)!
>>> def fact(n):
... if n == 1:
... return 1
... return n * fact(n-1)
...
>>> fact(5)
120
3 案例2_汉诺塔
#案例2:有ABC三个柱子,将n个盘子从从A搬到C要怎么操作
#分析:临界值是A上有1个盘子,C上有n-1个盘子;
#若A上盘子只有一个,则A->C;
#若A上盘子有n个,n-1个盘子A->B;第n个盘子A->C;n-1个盘子B->C
>>> def move(n,a,b,c):
... global count
... if n==1:
... print(a,'->',c)
... count += 1
... else:
... move(n-1,a,c,b)
... move(1,a,b,c)
... move(n-1,b,a,c)
...
>>> count=0
>>> move(3,'A','B','C')
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C