python函数应用_Python 函数及其应用

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值