python第五周,函数的定义与使用,代码复用与函数递归
Posted 某在斯的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第五周,函数的定义与使用,代码复用与函数递归相关的知识,希望对你有一定的参考价值。
函数的理解与定义:
作用:降低编程难度 和 代码复用
定义:
def <函数名> (<参数(0或多个)>):
<函数体>
return<返回值>
参数:
参数分为非可选参数和可选参数,第一个是非可选参数
函数定义是可以设计可变参数,既不确定参数总数量
def fact (n,*b):
s = 1
for i in range (1,n+1):
s*=i
for item in b:
s *=item
return s
#>>>fact(10,3) 10886400
#>>>fact(10,3,5,8) 43545600
参数传递有两种方式: 位置传递和名称传递
def fact (n,m=1):
s = 1
for i in range(1,n+1)
s*=i
return s//m
fact(10,5)和fact(m=5,n=10)结果是一样的
函数的返回值: return
函数可以有返回值,也可以没有、
return可以返回0个返回值,也可以传递多个返回值
def fact(n,m=1):
s = 1
for i in range (1,n+1):
s*=i
return s//m,n,m
#>>>fact(10,5) (725760,10,5)
#>>>a,b,c=fact(10,5)
#print(a,b,c) 725760 10 5
局部变量与全局变量,
函数内部的为局部变量,局部变量的改动并不影响整体:
保留字global:
函数内部使用global可以使局部变量变为全局变量
如果局部变量未真实创建,在是全局变量
lambda函数:
<函数名> = lambda <参数>: <表达式> 用于定义简单的,能够在一行内表示的函数,函数名就是返回结果
f = lambda x,y: x + y
f(10,15)
#25
代码复用和函数递归:
代码复用:
同一份代码在需要时可以被重复使用:
函数 和 对象 是代码复用的两种主要形式
函数:将代码命名在代码层建立了初步抽象
对象: 属性和方法<a>.<b>和<a>.<b>()在函数之上再次组织进行抽象
模块化设计,通过函数或对象封装将程序划分为模块及模块间的表达
紧耦合:两个部分之间交流很多,五i发独立存在
松耦合:两个部分之间交流较少,可以独立存在
模块内部紧耦合,模块之间松耦合
函数递归:自己调自己
连个关键特征:
链条:计算过程存在递归链条
基例:存在一个或多个不需要再次递归的基例
def fact(n):
if n == 0:
retutn 1#基例
else :
return n *fact(n-1)#链条
汉诺塔:
count = 0
def hanoi(n,a,b,c):
global count
if n == 1
print("{}:{}->{}".format(1,a,b)
count += 1
else:
hanoi(n-1,a,c,b)
print("{}:{}->{}".format(n,a,b))
count += 1
hanoi(n-1,c,b,a)
以上是关于python第五周,函数的定义与使用,代码复用与函数递归的主要内容,如果未能解决你的问题,请参考以下文章