函数篇
函数篇:
-
函数格式:
def loop():
return 1,2,3 #renturn函数需要返回的信息
a=loop() #调用函数并赋值给变量啊
print(a)#打印变量a
注意:return返回的值可以用于其他函数调用
如果一个函数没有return,则默认返回的是none
return后可以返回多个对象,比如列表,字符串,等等,返回都是一个元组
-
函数作用域
函数作用域分为四个部分,最外层的buti_in(即python自己系统定义的方法,如int());全局变量,嵌套局部变量,局域变量
x=int(2.9) #buit_in
name=0 #全局变量
def name()
name=0 #嵌套局部变量
def i_name():
i_name=1 #局部变量
print()
"""变量作用域优先级:局部变量>嵌套局部变量》全局变量;执行时先找本地,本地找不到再往外围找"""
"""
-
函数执行的顺序
对函数执行的顺序:
def name():
renturn 1,2,3
name()
当代码从上往下走的时候,会将
“”def name():
renturn 1,2,3“”
加入内存,但是不会去执行,当发现有name()调用的时候去执行name(),才会从上到下去执行
def name():
renturn 1,2,3
同理当代码执行,会把
def out():
out1=0
def out2():
out2=2
print(out2)
out2()
加入内存,当发现out(),才去执行
def out():
out1=0
然后将
def out2():
out2=2
print(out2)
加入内存,发现out2()才去从上而下执行
def out2():
out2=2
print(out2)
执行out时候,首先进入def out函数执行 out1,然后将def out2区域下的out2=2,print(out2)加入内存,然后执行out2(),接着执行到def out2(),执行out2=2,以及printout2
"""如:
def out():
out1=0
def out2():
out2=2
print(out2)
out2()
out()
-
全局变量和嵌套局域变量,常出现的问题
局部变量不可以修改全局变量,否则报错
(1).局部变量不可以修改全局变量否则报错,除非声明全局变量后方可使用
count=10 #全局变量
def count():
#glob(count)#局部变量如果需要更改全局变量,需要声明count为全局变量即可,则不会报错
count=count+1#局部变量不可以修改全局变量,此语句将全局变量10+1赋值给count,所以报错
count()
(2).当变量为嵌套局部变量,count函数需要需求name函数下的count则使用nonlocal=count即可,否则报错
def name():
count=10
def count():
# nonlocal=count #nonlocal是python3使用
#glob(count)#
count=count+1#局部变量不可以修改嵌套局域变量,此语句将全嵌套局域10+1赋值给count,所以报错
count()
name()
浙公网安备 33010602011771号