python基础学习 -- 函数高级用法
  TEZNKK3IfmPf 2023年11月13日 170 0

一、局部变量

只能在函数内部调用,b是局部变量,只能在aiyou函数体使用,所以第二个print会报错

a=1;
def aiyou():
b=2;
print(a,b)
aiyou()
print(a,b)#报错

二、局部函数

只能再函数内部调用,ay是内部函数,只能在aiyou函数体内部使用,所以第二个ay()调用报错

a=1;
def aiyou():
def ay():
print("ay")
ay()
aiyou()
ay()#报错

三、全局变量

全局变量是相对的,a是全局变量,任何地方都可以调用,b是aiyou()函数里面的全局函数,除了函数及就不能调用,

a=1;
def aiyou():
b=2;
def ay():
print(b)
print(a)
ay()
aiyou()
print(a)
print(b)#报错

四、global关键字

当全局变量和局部变量名字相同时,互不影响,打印结果是3和123

如果给局部变量加上关键字global,说明里面的局部变量和全局变量一样,打印结果相同,都是3

i=123;
def aiyou(a,b):
i=a+b
print(i)
aiyou(1,2)
print(i)
运行结果:
3
123

i=123;
def aiyou(a,b):
global i
i=a+b
print(i)
aiyou(1,2)
print(i)
运行结果:
3
3

五、range()函数

1、获取几个数字,就在range()的参数里写几

for i in range(10):
print(i)
运行结果:
0
1
2
3
4
5
6
7
8
9

2、从a开始取数值,到b-1结束

for i in range(5,10):
print(i)
运行结果:
5
6
7
8
9

3、从a开始取数值,到b-1结束,每次步长为c

for i in range(5,10,2):
print(i)
运行结果:
5
7
9

六、匿名函数

1、普通函数

如果a>b返回他们的差值,否则返回他们的和

def aiyou(a,b):
if a>b:
return a-b
else:
return a+b


c=aiyou(3,2)
print(c)

2、匿名函数,实现效果和上面的一样

c=lambda a,b:a-b if a>b else (a+b)
print(c(4,3))

3、实际应用

匿名函数一般当做参数传递给函数使用

def aiyou(ay):
print(ay(5,4))


aiyou(lambda a,b:a-b if a>b else a+b)

七、递归函数

1、普通函数实现1+2+3+...+n的求和

def aiyou(a):
b=0
for i in range(1,a+1):
b=b+i
return b
print(aiyou(100))

运行结果:
5050

2、递归函数实现1+2+3+...+n的求和

def aiyou(a):
if a==1:
return 1
return a+aiyou(a-1)


print(aiyou(100))
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   30   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   24   0   0 python
  TEZNKK3IfmPf   2024年05月31日   22   0   0 python
TEZNKK3IfmPf