第三章 3.4 函数
2018-06-18 03:20:15来源:未知 阅读 ()
1 减少重复代码
2 使程序变的可扩展
3 使程序变得易维护
def sayhi(): 函数名
print('hello , i'm nobody!')
sayhi() 调用函数
def calc():
res = x**y
return res 返回函数执行结果
c = cal(a,b)
print(c)
函数参数
def calc(x,y): 形参
res = x**Y
return res
c = calc(a,b) 实参
print(c)
默认参数
def stu_register(name,age,course,country='CN'):
print(----注册学生信息--)
print('姓名’,name)
......
关键参数
给函数传参数要按照顺序,不想按照顺序就可以使用关键参数,只指定参数名即可,关键参数必须放在位置参数之后
非固定参数
若你的函数定义是不确定传入多少个参数,就使用非固定参数
def register(name,age,*args,**kwargs):
print(name,age,args,kwargs)
register('alex',22)
输出
alex 22 () {} 没有传值为空
register('jack',32,'CN','python',sex='male',country='shandong'):
输出
jack 22 ('CN','python'){'province':'shandong','sex':male}
返回值
函数外部代码想要获取函数执行结果,就可以用return语句把结果返回
def stu_register(name,age,course='py',country='cn'):
print(--注册学生信息--)
print('age',age)
if age > 22:
return False
else:
return True
registrition_status=stu_register('王大锤‘,22,course='py,country='jp')
if registrition_status:
print('注册成功’)
else:
pring("too old to be a student.')
函数执行过程遇到return语句会停止并返回结果,如果未在函数中指定return ,那么函数的返回值为None
全局与局部变量
name = 'alex'
change_name():
global name
name = 'alex 金角大王'
print('name')
嵌套函数
name = 'alex'
def change_name():
name = 'alex2'
def change_name2():
name= 'alex3'
print('第三层打印,name)
change_name2() 调用内层函数
print(第二层打印,name)
change_name()
print('最后一层打印',name)
匿名函数
res=map(lambda x:x**2,[1,5,7,4,8])
for i in res:
print(i)
1
25
49
16
64
高阶函数
变量指向函数,函数的参数能接受变量,那么一个函数就可接受另一个函数作为参数,这种函数称为高阶函数
def add(x,y,f):
return f(x) +f(y)
res =add(3,-6,abs)
print(res)
只需满足下面一个条件,即是高阶函数:
接受一个或者多个函数作为输入
return 返回另一个函数
递归
一个函数在内部调用自身就是递归函数
def calc(n):
print(n)
if int(n/2) == 0:
return n
return calc(int(n/2))
calc(10)
10
5
2
1
递归特性:
1 必须有一个明确条件
2 每次深入一层递归时,问题规模相比上一次递归都应有所减少
3 递归效率不高,递归层次过多会导致栈溢出
递归的实际应用案例,二分法
data=[1,3,6,7,9.12.14.16.17.18,20,21,22,23,30,32,33,35]
def binary_search(dataset,find_num):
print(dataset)
if len(dataset) >1:
mid = int(len(dataset)/2)
if dataset[mid] == find_num:
print('找到了,detaset[mid])
elif dataset[mid] > find_num:
print('找的数在mid[%s] 左边 %dataset[mid])
return binary_search(dataset[0:mid],find_num)
else:
print(找的数在mid[%s] 右边 %dataset[mid])
return binary_search(dataset[mid+1:],find_num)
else:
if dataset[0] == find_num:
print('找到数字了',dataset[0])
else:
print(’要找的数字[%s] 不在列表里 ‘%find_num)
binary_searc(data,66)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- fetchone函数和fetchall函数返回值的区别 2019-08-13
- Python之装饰器笔记 2019-08-13
- Python学习日记(九) 装饰器函数 2019-08-13
- python之函数、面向对象 2019-08-13
- python3基础之“函数(2)” 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash