Python 函数及其应用
2018-07-25 13:12:39来源:博客园 阅读 ()
Python函数:
一个具有独立功能的代码块,重复使用时,那么往往就需要使用函数把这块代码封装成一个整体。
一、定义函数:
def 函数名():
函数代码
定义一个函数,函数不会执行,要执行需要调用函数
二、调用函数:
函数名()
函数定义一次,可以多次被调用
demo:
def printHelp():
print('='*30)
print(' 学生管理系统')
print('1.添加学生信息')
print('2.删除学生信息')
print('3.修改学生信息')
print('4.查询学生信息')
print('5.显示学生信息')
print('0.退出系统')
print('='*30)
printHelp()
三、返回值:
一个函数执行完成以后,把一个结果拿给调用者 ,只能返回一个值
return : 1.可以把一个结果返回给调用者
2.结束一个函数
注意:如果一个函数中编写了多个return,程序不会出现语法错误,
只要第一个return执行了,这个函数就结束了
四、全局变量与局部变量
全局变量:
在函数外面定义的变量就是全局变量
全局变量一般不能直接在函数内部被更改
如果要更改,可以用:global + 变量名
局部变量:
在函数里面定义的变量就是局部变量
形参是局部变量
五、不定长参数
demo:
#不带名字的参数将作为一个元素传给*args,形成一个元组
#带名字的参数将作为一个元素传给**kwargs,形成一个字典
def test(a,b,*args,**kwargs):
print(a)
print(b)
print(args)
print(kwargs)
test(11,22,33,44,55,66,77,88,mm = 11,nn =33)
print('-' * 50)
#当列表/元组在当做实参传递的时候,如果前面有一个*,表示对其进行解包
#意思是:[111,222,333] ---> 111,222,333
#当字典当做一个实参进行传递的时候,如果前面有两个*,表示对其进行解包
#意思是:{’aa':100,'bb':200} ---> a = 100,b = 200
A = [11,22,33]
B = {'aa':100,'bb':200}
test (11,22,*A,**B)#等价于(11,22,11,22,33,aa = 100,bb = 200)
print('-' * 50)
test(11,22,A,new = B)
六、递归:
#demo 1 阶乘递归
def test(num):
if num > 1:
return num * test(num-1)
else:
return 1
i = int(input('请输入一个数字:'))
print(test(i))
#demo 2 汉诺塔
#有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,
要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子
上方,请问至少需要多少次移动?
def move(n,a,b,c):
if n == 1:
print(a,'----->',c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
move(4,'A','B','C')
七、匿名函数
def sum(a,b):
return a + b
#等价于
sum = lambda a,b: a + b
八、内建函数
1.map(函数,可迭代对象)#进行对应操作
例如:map(lambda x : x * x,[1,2,3])
2.filter(函数,可迭代对象)#过滤,函数返回布尔值
例如:filter(lambda x: x%2,[1,2,3,4])
3.reduce(函数,可迭代对象)#累计值
例如:reduce(lambda x,y: x+y,[1,2,3,4])
reduce(lambda x,y:x+y,['aa','bb','cc'],'dd')
#结果为’ddaabbcc'
4.sorted(可迭代对象)#排序,倒序加reverse = True
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 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