python

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
上一篇下一篇

猜你喜欢

热点阅读